我有一個應用程序,我正在爲它的安裝程序工作。假設我希望安裝不需要提升,並且我希望應用程序本身永遠不需要提升,並且我希望應用程序(內置於)的更新程序永遠不需要提升應在哪裏安裝應用程序?什麼目標文件夾應該安裝我的應用程序,永遠不會要求UAC提升?
注意事項:
- 此應用程序未簽名。
- 我很好,如果每個用戶必須單獨安裝在他們的個人資料下。
- 我可以在安裝中使用註冊表並完成相同的目標嗎?
- 它唯一寫的是建立/配置文件。
- .NET 4應用程序。
我有一個應用程序,我正在爲它的安裝程序工作。假設我希望安裝不需要提升,並且我希望應用程序本身永遠不需要提升,並且我希望應用程序(內置於)的更新程序永遠不需要提升應在哪裏安裝應用程序?什麼目標文件夾應該安裝我的應用程序,永遠不會要求UAC提升?
注意事項:
通常的選擇是SHGetFolderPath(CSIDL_LOCAL_APPDATA)
(Win2K系統及更高版本)或SHGetKnownFolderPath(FOLDERID_LocalAppData)
(Vista和更高版本)返回的本地應用程序數據文件夾。
這返回的路徑是這樣的:
這是正常在這裏創建的公司名稱和應用程序文件夾,所以你會喜歡的路徑完成了:
」 C:\用戶\ ARX \ AppData的\本地\ BlahSoft \布拉赫應用」
更新
如果你想從淨則需要Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)
'SHGetKnownFolderPath'是一個Win32 API,不是.NET和WIX。此外,'FOLDERID_LocalAppData'是應用程序* data *文件夾,而不是已安裝的程序文件夾。 – 2012-01-03 17:06:51
你的問題被標記都維克斯和.NET這條道路;兩者對已知文件夾路徑具有不同的語法。用於獲取當前用戶應用程序文件夾的.NET命令是Environment.GetFolderPath(Environment.SpecialFolder.Programs)
。
如果要安裝到WIX路徑,它具有每個已知文件夾的預定義屬性; [ProgramFilesFolder]
是指32位應用程序文件夾,而[ProgramFiles64Folder]
指向64位文件夾。
沒有每個用戶安裝的程序目錄,因此每個用戶程序傾向於使用本地應用程序數據目錄。 SpecialFolder.Programs目錄用於開始菜單快捷方式,不適用於程序文件。 [ProgramFilesFolder]和[ProgramFiles64Folder]需要提升。 – arx 2012-01-03 20:49:26
你問如何從WIX或.NET獲得路徑?兩者不同。 – 2012-01-03 17:07:53