1

我们的数字签名 MSI 设置为仅按用户安装。这有效,并且没有按预期给出 UAC 提示。文件按预期安装到 AppData。问题是卸载或升级 MSI 需要管理员通过 UAC 提示取消/通过。什么特定的配置可能会导致这种情况,或者我可以查看什么来调试它?

  • MSI 是使用 Visual Studio 的安装项目创建的
  • 目标操作系统是 XP 或 7,其中 7 是理想的目标
4

1 回答 1

0

哪个操作系统?您如何设法为每个用户安装它,尤其是如何让 ALLUSERS 属性为空以进行安装和卸载?您确定没有自定义操作(例如来自 installshield)设置 ALLUSERS。也许搜索 msi 表以确保没有设置此属性。

我只是尝试安装和卸载一个像这样的简单测试 msi,它在没有 UAC 的 Win7(64,SP1)下运行良好。所以我至少可以证明这是可能的:

安装:
msiexec /i testmsi.msi /qb ALLUSERS=""

卸载:
msiexec /x testmsi.msi /qb ALLUSERS=""

(如果在没有该命令行参数的情况下根本没有在 msi 中设置 ALLUSERS,则工作方式相同,则与用于卸载的产品代码相同。)

所以主要的先决条件得到满足:
- 我的安装路径设置为适当的 AppData 路径
- 没有在 HKLM 而不是其他资源上创建注册表项
- ALLUSERS 为空或未定义
- 在摘要信息中未设置 UAC 标志
- 没有自定义需要提升权利的行动

我没有尝试使用签名的 MSI,但我认为这没有什么不同。

这意味着如果您不查看日志文件或 msi 本身的适当行,这似乎不能更好地回答。

于 2013-07-11T15:45:35.310 回答