Installation 如何让WiX安装程序请求管理权限?
我们有一个内部开发的程序。我们正在升级以使用Visual Studio 2012,因此必须放弃Visual Studio安装程序项目。如果应用程序已经安装,InstallShield LE会给我们带来快捷方式方面的问题。这让我最终选择了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"
包
元素具有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>