Windows installer MSI卸载UAC提示

Windows installer MSI卸载UAC提示,windows-installer,uac,Windows Installer,Uac,我们的数字签名MSI设置为仅按用户安装。这是可行的,不会像预期的那样给出UAC提示。文件按预期安装到AppData。问题在于,卸载或升级MSI需要通过UAC提示符进行管理un/pass。什么特定的配置可能会导致这种情况,或者我可以通过什么来调试这种情况 MSI是使用Visual Studio的安装项目创建的 目标操作系统是XP或7,7是理想的目标 哪个操作系统?您是如何让每个用户安装它的,尤其是如何让ALLUSERS属性在安装和卸载时都为空的?您确定没有自定义操作(例如来自installshi

我们的数字签名MSI设置为仅按用户安装。这是可行的,不会像预期的那样给出UAC提示。文件按预期安装到AppData。问题在于,卸载或升级MSI需要通过UAC提示符进行管理un/pass。什么特定的配置可能会导致这种情况,或者我可以通过什么来调试这种情况

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

哪个操作系统?您是如何让每个用户安装它的,尤其是如何让ALLUSERS属性在安装和卸载时都为空的?您确定没有自定义操作(例如来自installshield)设置ALLUSERS吗。可能会搜索msi表以确保未设置此属性

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

安装:
msiexec/i testmsi.msi/qb alluser=“”

卸载:
msiexec/x testmsi.msi/qb alluser=“”

(如果msi中没有设置ALLUSERS而没有该命令行参数,则与productcode的工作原理相同,以便卸载。)

因此,主要先决条件得到满足:
-我的安装路径已设置为适当的AppData路径
-没有在HKLM上创建注册表项,也没有在其他资源上创建注册表项
-ALLUSERS为空或未定义
-摘要信息中未设置UAC标志
-没有需要提升权限的自定义操作

我没有尝试过签名MSI,但我不认为这有什么区别


这意味着,如果不查看日志文件的相应行或msi本身,这似乎无法更好地回答问题。

如何编写安装程序?通过VS 2010中的安装项目类型