我正在实现一个单独的包,它支持在WiX中使用WixUI_Advanced
安装每个用户和每台机器。当我为这台机器上的所有用户选择Install时,- [ProgamFilesFolder]
计算结果为AppData\Local\Programs
而不是C:\Program Files
。
注意,UAC提示符只有在目标目录选择之后才会出现--我认为这是由于UAC虚拟化导致了这个问题。
如何获得真正的程序文件目录?
另一种解决方法可能是-更改对话框顺序,以便在功能选择对话框之后显示目录选择对话框,该对话框的下一个按钮调用UAC提升提示。
或者在[ProgramFilesFolder]
被评估为目标位置之前提示UAC提升,但只在用户选择了每台机器安装时。
更新:当前我使用:[%ProgramFiles]
--环境变量( x86在x64上安装时中断)
更新II:现在我正在使用ProgramFilesDir
的注册表值at:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
发布于 2013-04-23 20:24:23
WixUI_Advanced
依赖于带有Id='APPLICATIONFOLDER'
的Directory
元素来配置安装应用程序的位置。然后使用ALLUSERS
属性配置要安装到正确位置的路径。在高级对话集帮助主题中详细介绍了其中的许多内容。所有这些都不会改变ProgramFilesFolder
的值。
PS:[%ProgramFiles]
环境是访问ProgramFilesFolder
的一种不那么健壮的方法。相反,您可以使用[ProgramFilesFolder]
获取Windows中默认的值。
https://stackoverflow.com/questions/16175553
复制相似问题