【发布时间】:2013-04-17 00:48:48
【问题描述】:
我正在使用WixUI_Advanced 在 WiX 中实现支持每用户和每机器安装的单个包。当我选择为这台机器上的所有用户安装 - [ProgamFilesFolder] 评估为AppData\Local\Programs 而不是C:\Program Files。
请注意,仅在选择目标目录后才会出现 UAC 提升提示 - 我认为这是由于 UAC 虚拟化而导致的。
如何获得真正的 Program Files 目录?
另一种解决方法可能是 - 更改对话框顺序以在功能选择对话框之后显示目录选择对话框,其下一个按钮调用 UAC 提升提示。
或者在评估 [ProgramFilesFolder] 的目标位置之前提示 UAC 提升,但前提是用户选择了每台机器安装。
更新:目前我使用:[%ProgramFiles] -- 环境变量(在 x64 上安装 x86 时中断)
更新二:现在我使用ProgramFilesDir的注册表值在:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
【问题讨论】:
-
您可以使用 .dontnetinstaller 工具将 msi 转换为 exe,然后在您执行设置时总是会出现 UAC 提示。
-
否定 - 只有当用户选择按机器安装时,UAC 提示才会出现。
-
是的。只有当用户在服务器上没有管理员权限时,UAC 才会出现