23

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

我已经对此进行了几天的研究,并阅读了几篇关于如何获得管理员权限的帖子,但它们似乎都不起作用。该Package元素具有 InstallPrivileges="1" 并且存在以下Property元素:

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

它在启动时不会请求管理员权限,因此在尝试在C:\Program Files(x86).

4

4 回答 4

30

关于如何让 WiX 安装程序请求管理权限的答案

Opus Krokus评论中找到的解决方案。

回答

我添加了以下内容(到 Package 元素),我不确定哪个(或什么组合)给了我我需要的东西,但它现在可以工作:InstallPrivileges="elevated" AdminImage="yes" InstallScope="perMachine"

于 2013-06-14T13:11:26.540 回答
1

看看这个 Stack Overflow 问题的答案。

以下是答案的精髓:

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

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

于 2014-02-18T14:45:38.913 回答
1

您需要 2 个命令:

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

<Condition Message="Installation requires Administrator privileges">
    <![CDATA[Privileged]]>
</Condition>

请注意,您必须Privileged<![CDATA[ 和 包围]]>

于 2019-07-31T11:55:20.767 回答
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

于 2014-10-10T13:19:31.417 回答