2013-07-07 79 views
1

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

  • 微星与Visual Studio的安装项目创建
  • 目标操作系统是XP还是7,7是理想的目标
+1

你是如何编写安装程序的? –

+0

通过VS 2010中的安装项目类型 –

回答

0

哪些操作系统?你如何设法让每个用户安装它,特别是你如何在安装和卸载时获得ALLUSERS属性为空?您确定没有自定义操作(例如从installshield)设置ALLUSERS。也许搜索msi表以确保此属性无处设置。

我只是试图安装和卸载这样一个简单的测试MSI,它没有UAC在Win7(64,SP1)下工作正常。 因此,我可以至少证明它是可能的:

安装:
MSIEXEC/I testmsi.msi/QB ALLUSERS = “”

卸载:
MSIEXEC/X testmsi.msi/QB ALLUSERS = “”

(工作一样,如果没有设定ALLUSERS在所有微星没有这种命令行PARAM,以同样的与产品代码为卸载。)

所以主要的前提条件得到满足:
- 我的安装路径设置为一个适当的应用程序数据路径
- 在HKLM而不是其他资源
没有创建注册表项 - ALLUSERS为空或没有定义
- 在摘要信息的UAC标志未设置
- 没有需要提高权利的自定义操作

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

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