| ProgramFilesFolder |评估为AppData \ Local \ Programs \

时间:2013-04-23 17:29:17

标签: windows-7 wix uac

我正在实施一个支持Per-User& amp;使用WixUI_Advanced在WiX中进行每台计算机的安装。当我为此计算机上的所有用户选择安装时,[ProgamFilesFolder]评估为AppData\Local\Programs而不是C:\Program Files

请注意,只有在目标目录选择之后才会出现UAC提升提示 - 我认为这会导致由于UAC虚拟化而导致此问题。

如何获得真正的Program Files目录?
另一种解决方法是 - 在功能选择对话框后更改对话框顺序以显示目录选择对话框,其下一个按钮将调用UAC提升提示。
或者在评估目标位置[ProgramFilesFolder]之前提示UAC提升,但仅在用户选择了每台机器安装时才提示。

更新:目前我使用:[%ProgramFiles] - 环境变量(在x64上安装x86时中断)

更新II :现在我使用ProgramFilesDir的注册表值:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion

1 个答案:

答案 0 :(得分:1)

WixUI_Advanced取决于具有Directory的{​​{1}}元素来配置应用程序的安装位置。然后使用Id='APPLICATIONFOLDER'属性配置安装到正确位置的路径。 WixUI_Advanced Dialog Set帮助主题中详细介绍了很多内容。这些都不会改变ALLUSERS的价值。

PS:ProgramFilesFolder环境是访问[%ProgramFiles]的不太健全的方式。相反,您可以使用ProgramFilesFolder在Windows安装程序中获取默认值。