如何让WiX安装程序请求管理权限?

时间:2013-01-15 22:32:26

标签: installer wix elevated-privileges

我们有一个内部开发的程序。我们正在升级以使用Visual Studio 2012,因此必须将Visual Studio安装程序项目放在后面。如果已经安装了应用程序,InstallShield LE会给我们提供快捷方式的问题。这让我最终选择了WiX。

我已经研究了几天,并阅读了几篇关于如何获得管理员权限的帖子,但似乎都没有。 Package元素的InstallPrivileges =“1”,并且存在以下Property元素:

<Property Id="MSIUSEREALADMINDETECTION" Value="1" />

启动时不会请求管理员权限,因此在尝试在C:\Program Files(x86)中创建程序文件夹时会失败。

4 个答案:

答案 0 :(得分:25)

回答如何让WiX安装程序请求管理权限

Opus Krokuscomment中找到的解决方案。

<强>答案

  

我添加了以下内容(对于Package元素),我不确定哪个(或什么组合)给了我我需要的东西,但它现在有效:InstallPrivileges =“elevated”AdminImage =“yes”InstallScope =“perMachine “

答案 1 :(得分:1)

查看this Stack Overflow question的答案。

以下是答案的精髓:

<Property Id="MSIUSEREALADMINDETECTION" Value="1" />

Opus Krokus建议的解决方案对我不起作用。

答案 2 :(得分:0)

对我来说,这对我在Windows 7(及更高版本)上安装的MSI起了作用:

  <!-- Set per-machine installation as default.
  See See http://msdn.microsoft.com/en-us/library/dd408007.aspx for an explanation of ALLUSERS=2 and MSIINSTALLPERUSER="".
  -->
  <Property Id="ALLUSERS" Value="2" />
  <!-- Needs to be empty value (and empty value must be commented out to get rid of error message when compiling):
  <Property Id="MSIINSTALLPERUSER" Value="" /> 
  -->

如上述XML注释中所述,有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/dd408007.aspx

答案 3 :(得分:0)

您需要2条命令:

100

请注意,您必须用<Property Id="MSIUSEREALADMINDETECTION" Value="1" /> <Condition Message="Installation requires Administrator privileges"> <![CDATA[Privileged]]> </Condition> Privileged包围<![CDATA[