我已经写了
一个msi
文件,在UI阶段提供“每
用户”或“全部”安装选项,现在发现安装程序在Vista上失败:
>如果我只是重新使用适用于XP的安装程序,Vista将会触发UAC提示,即使是“每用户”安装,使安装无意义
>如果我在PID_WORDCOUNT的第3位关闭UAC,Vista将不会再调用UAC,所以即使用户有权安装到机器注册表(例如),也不会发生特权提升,所以安装失败。
那么,如何避免安装程序在真正需要的时候调用UAC?或者,即使设置了第3位,如何以编程方式请求UAC?
不幸的是,Windows Installer没有提供一种
方法来创建
一个可以安装每台机器和每个
用户的单个软件包,但只能在每台机器上为UAC
提示。问题是可以抑制UAC
提示的位被存储在Summary
information流中,并且在程序包正在执行时不可
修改。