如何强制WiX setupbld.exe的权限提升

时间:2011-03-16 19:14:23

标签: installer wix uac

我创建了一个MSI文件,然后使用setupbld.exe创建了setup.exe。我想在setup.exe图标上设置此屏蔽,因此当用户尝试运行此安装程序时,用户将立即获得具有User Account Control(UAC)提升的此屏幕。我该怎么办?

目前,我使用以下cmd行生成setup.exe:

setupbld.exe -out c:\Setup.exe -mpsu c:\outTEst\a.msi -setup setup.exe -title "setup"

现在,用户必须单击setup.exe并选择以管理员身份运行才能安装我的应用程序。

3 个答案:

答案 0 :(得分:3)

Setupbld.exe不支持标记asAdministrator提升。如果您的.msi只能以“早期”提升运行,那么您的.msi中就会出现错误。通常,它是需要在延迟上下文中运行而不模拟的自定义操作。

答案 1 :(得分:1)

您可以在生成的Setup.exe中编辑清单,并将其requestedExecutionLevel属性更改为requireAdministrator

然而,正如Bob在他的answer中所说,你应该更好地使用Deferred Execution Custom ActionsNoImpersonate。延迟自定义操作只能访问有限数量的属性,有关详细信息,请参阅Obtaining Context Information for Deferred Execution Custom Actions

另请查看UAC in MSI Notes: The NoImpersonate Bit Mistake

答案 2 :(得分:1)

http://blog.torresdal.net/2008/10/06/

如果我理解正确的话,这个博客几乎就是你所说的。我正在使用我的msi管理员,以便我的自定义操作正常运行。但是,我也在写入和阅读注册表,并且由于某种原因从注册表中读取不起作用。日志文件说AppSearches正在返回签名3,我相信这意味着访问被拒绝。我还在研究为什么会这样。

最佳。

编辑:我认为我的注册管理机构问题与我的管理员权限无关,我知道我的设置为我提供了提升权限,因此请忽略有关注册管理机构问题的评论。