我想在 WiX 中创建一个 MSI,以便它可以采用命令行参数来指示它是按机器安装还是按用户安装,因此是否引发 UAC 对话框。
实现这一目标的最佳方法是什么?
我想在 WiX 中创建一个 MSI,以便它可以采用命令行参数来指示它是按机器安装还是按用户安装,因此是否引发 UAC 对话框。
实现这一目标的最佳方法是什么?
UAC 对话框由 SummaryInformation 流中的位控制。不幸的是,这意味着它无法在“运行时”(安装/修复/卸载)进行控制。您必须构建不同的 MSI 文件才能真正更改 UAC 提示。
我还不能在 Vista 中进行测试,但是对于每个用户安装的受限用户和每个机器安装的管理员用户,XP 中的工作如下:
msiexec /i myinstaller.msi ALLUSERS="" INSTALLDIR="C:\Documents and Settings[用户名]\Local Settings\Application Data\My COMpany\My Program"
INSTALLDIR 可以是受限用户可以写入的任何内容。以上是谷歌浏览器使用的目录。从以下链接中发现 ALLUSERS 属性实际上可以为空白,与 1 或 2 不同,并且正确设置了 ProgramDir 和桌面位置
http://blogs.msdn.com/astebner/archive/2007/11/18/6385121.aspx