我已经编写了一个msi文件,该文件提供了UI阶段中“按用户”或“全部”安装的选择,现在发现安装程序在Vista上失败:


如果我只是重复使用适用于XP的安装程序,则即使对于“按用户”安装,Vista也会触发UAC提示,从而使该安装毫无意义
如果我在PID_WORDCOUNT的第3位中关闭了UAC,Vista将不再调用UAC,因此,即使用户有权安装到计算机注册表中(例如),特权提升也不会发生,因此安装失败。


因此:当真正不需要UAC时,如何防止安装程序调用UAC?另外,即使设置了位3,如何以编程方式请求UAC?

最佳答案

不幸的是,Windows Installer没有提供一种创建单个程序包的方法,该程序包可以按计算机和每个用户安装,而仅在按计算机情况下提示输入UAC。问题是可以抑制UAC提示的位存储在SummaryInformation流中,并且在程序包执行时不可修改。

关于windows-vista - 在Vista的Windows Installer中将UAC设为可选,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/252871/

10-13 02:33