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

Installation 如何让WiX安装程序请求管理权限?,installation,wix,elevated-privileges,Installation,Wix,Elevated Privileges,我们有一个内部开发的程序。我们正在升级以使用Visual Studio 2012,因此必须放弃Visual Studio安装程序项目。如果应用程序已经安装,InstallShield LE会给我们带来快捷方式方面的问题。这让我最终选择了WiX 我已经研究了几天,读了几篇关于如何获得管理员权限的帖子,但似乎都不管用。包元素具有InstallPrivileges=“1”,并且存在以下属性元素: <Property Id="MSIUSEREALADMINDETECTION" Value="1"

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

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

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


它在启动时不会请求管理员权限,因此当它尝试在
C:\program Files(x86)
中创建程序文件夹时失败回答如何让WiX安装程序请求管理员权限

中找到的解决方案

回答

我(在Package元素中)添加了以下内容,我不确定哪一个(或哪一个组合)提供了我所需要的,但它现在可以工作了:InstallPrivileges=“highed”AdminImage=“yes”InstallScope=“perMachine”

看看这个问题的答案

以下是答案的要点:

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


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

这就是我为安装在Windows 7(及更高版本)上而创建的MSI对我起作用的原因:


如上述XML注释所述,请参阅以了解详细信息。

您需要2个命令:

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

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


请注意,您必须使用
]>
包围
特权

安装执行序列
之前,MSI不会请求管理员权限。要从一开始就获得管理员权限,您必须使用引导程序,请查看WIX提供的Burn引擎。如果您的包在每台机器上安装,那么MSI引擎会自动请求UAC提升。可能是因为您的包是按用户的,但仍尝试写入程序文件?
ALLUSERS
属性是否设置为1?谢谢你们的建议。对娜塔莉说:我不能用自动引导器。输出必须是MSI(其他人将升级链接硬编码到当前应用中)。我添加了以下内容,我不确定是哪个(或什么组合)提供了我所需要的,但它现在起作用了:
InstallPrivileges=“hiveled”AdminImage=“yes”InstallScope=“perMachine”
@OpusKrokus您可以将其作为答案发布,并接受它。事实上,我强烈建议您这样做。我认为正确的方法可能是
InstallPrivileges
。我已经删除了
AdminImage
属性,我的包仍在请求管理权限
AdminImage
似乎意味着另一件事,请参阅:在
InstallScope=“perUser”
中是否可能?我无法为每个用户设置提升的权限。您必须使用
InstallScope=“perMachine”
才能完成此操作。
<Property Id="MSIUSEREALADMINDETECTION" Value="1" />     

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