以下目錄設置完美適合我。如何安裝到LocalAppData文件夾?
<Directory Id='TARGETDIR' Name='SourceDir'>
<Directory Id="ProgramFilesFolder">
<Directory Id='INSTALLDIR' Name='MyApp'/>
</Directory>
</Directory>
然而,當我試圖改變 「ProgramFilesFolder」 到 「LocalAppDataFolder」,我得到了很多錯誤的使用light
時,鏈接和生成我的MSI:
D:\runGroup.wxs(53) : error LGHT0204: ICE38: Component cmpA5561BE36D80EB58252E69DDA0C2FF8C installs to user profile. It must use a registry key under HKCU as its KeyPath, not a file. D:\main.wxs(38) : error LGHT0204 : ICE64: The directory INSTALLDIR is in the user profile but is not listed in the Remove File table.
貌似「 LocalAppDataFolder「不適用於WiX,但我相信它是here中定義的系統文件夾屬性之一。
我應該爲LocalAppData文件夾使用什麼?
我的建議:根本不要安裝到任何userprofile文件夾。安裝到[ProgramFilesFolder]並允許操作系統執行任何重定向。每個操作系統都可以以不同的方式做到這一點,而你的「引擎蓋修補程序」無疑會適得其反。如果該文件夾沒有被操作系統重定向,MSI引用計數應該能夠針對不同用戶對同一個文件夾進行多次安裝。只要確保您沒有任何在文件夾中修改的讀/寫文件即可。您的安裝文件夾應該是隻讀的。不要反抗Windows的特質 - 它會以復仇的方式回擊。 –
這裏的問題是,我不知道如何讓[ProgramFilesFolder]重定向到它應該用於每個用戶安裝的位置。這就是爲什麼我必須找出解決方法。 – Deqing
是的,你不應該重定向它:-)。 Windows可能會再次將您重定向到您,並且在Vista,Windows 7,Windows 8等上以不同的方式進行重新定向...... Windows安裝程序可能會與之抗爭 - 它會反擊。即使對於每個用戶的安裝,您仍然可以安裝到[ProgramFilesFolder],並且一些Windows版本可能會自動重定向它,其他人可能會安裝到ProgramFilesFolder。不要混淆這一點,只要讓它按照Windows的規定工作即可。 –