我有一个使用Wix构建的MSI安装程序。它不需要提升的特权,拥有ALLUSERS = 2和MSIINSTALLPERUSER = 1。在用户非活动模式下,它可以正常工作,但是在静默(/ qn)或被动(/ passive)模式下从非提升的命令提示符启动时,则失败。
“操作开始:InstallFinalize”之后立即出现日志错误:
Error 1925. You do not have sufficient privileges to complete this installation for all users of the machine. Log on as administrator and then retry this installation.
有趣的是,如果我以静默方式从admin命令提示符运行安装程序,则安装成功。它安装到每个用户的文件夹中,并按预期将注册表写入HKCU,但是当我卸载它时,它会触发UAC提升提示,这表明那里有一些组件是按计算机而不是按用户安装的。同样,如果以用户交互模式安装,则不会发生这种情况。
任何帮助将不胜感激。
答案 0 :(得分:0)
原来,问题出在ALLUSERS
属性上。我有一个自定义操作,在FindRelatedProducts
之前将其值设置为1或不设置任何值,以匹配以前安装的任何版本的范围,以便可以对其进行正确升级。然后,还有另一个自定义操作,将ALLUSERS
的值重置为2,并相应地设置了MSIINSTALLPERUSER
。问题出在第二个自定义操作上-显然您不应该在ALLUSERS
中将InstallExecuteSequence
的值重置为2,但是可以在InstallUISequence
中这样做。