安装更改不要求UAC权限

时间:2011-12-27 17:55:57

标签: wix windows-installer uac repair

我为我们的产品实施了一个安装程序。 安装程序需要管理员权限,因此我将安装引导程序与清单文件(建议使用here)一起使用,以便在启用了UAC的Windows计算机上获得这些权限。安装和卸载都很顺利 - 要求用户提供权限,安装程序会执行它需要做的事情。

但如果您运行控制面板程序和功能并为已安装的程序选择“更改”*,则会出现错误(自定义,来自安装程序LaunchConditions),告诉安装程序需要管理权限。在这种情况下我找不到任何方式来请求权限 - Windows只是运行MSI文件,并且不知道所需权限。

更奇怪的是修复功能 - 它要求权限,但是然后无法使用SetupBootstrapper执行安装期间允许的某些操作。

我发现了类似的问题here

但在我们的案例中,提议的解决方案是不可接受的。

现在改变功能的唯一解决方法是始终使用SetupBootstrapper而不使用程序和功能菜单,但这不是非常用户友好并强制用户保持安装程序开启他/她的硬盘。

有人有更好的建议吗?

PS:我使用 WiX 来创建安装程序,所以听说WiX解决方案会很棒,但我很确定它不依赖于安装程序创建语言,但是仅限于MSI细节。

1 个答案:

答案 0 :(得分:4)

哪些行动失败了?如果它们是您添加到安装中的操作,请确保使用Impersonate="no"Execute="deferred"(或"commit""rollback")定义此类操作,并确保它们在某处排序在InstallInitializeInstallFinalize之间。