我们的数字签名MSI设置为仅按用户安装。这有效,并没有按预期提供UAC提示。文件按预期安装到AppData。问题是卸载或升级MSI需要通过UAC提示输入admin un / pass。什么特定的配置可能导致这种情况,或者我可以看一下调试它?
答案 0 :(得分:0)
哪个操作系统?你如何设法为每个用户安装它,特别是如何将ALLUSERS属性设置为空安装和卸载?您确定没有自定义操作(例如来自installshield)设置ALLUSERS。也许搜索msi表以确保此属性未设置。
我只是尝试安装和卸载这样的简单测试msi,它在没有UAC的Win7(64,SP1)下工作正常。 所以我至少可以证明它是可能的:
安装:
msiexec / i testmsi.msi / qb ALLUSERS =“”
卸载:
msiexec / x testmsi.msi / qb ALLUSERS =“”
(同样的,如果在没有该命令行参数的msi中根本没有设置ALLUSERS,则与用于卸载的productcode一样。)
因此主要的前提条件得以实现:
- 我的安装路径设置为适当的AppData路径
- 没有在HKLM上创建注册表项而不在其他资源上创建
- ALLUSERS为空或未定义
- 在摘要信息中,未设置UAC标志
- 没有需要提升权利的自定义操作
我没有尝试使用已签名的MSI,但我认为这不会产生任何影响。
这意味着没有你查看日志文件或msi本身的相应行,这似乎不能更好地回答。