WiX安装程序应始终以管理员身份运行。

15

我使用WiX为.NET WPF应用程序开发了自定义安装程序。如果我右键单击并以管理员身份运行,它可以正常工作,但在没有管理员权限的情况下运行时,某些组件会因权限不足而无法安装。

这些组件包括SQL Server Express 2008 R2、FoxIt Reader、一个ActiveX组件和其他一些组件。还需要在新安装的数据库上运行一些SQL脚本,无论如何,它们都需要管理员权限。


我尝试将InstallScope="perMachine"和InstallPrivileges="elevated"属性添加到Package节点中,但似乎没有任何改变。

我确信这是一些愚蠢的问题,但我在参考资料或在线上找不到任何信息。

3个回答

25

我认为如果你只是添加

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

它应该能解决问题。如果不能,请告诉我,我可以做更多的检查。


谢谢 - 我会试着调整一下。这个应该放在哪里? - rumblefx0
它可以放在产品元素下的任何位置。我喜欢将所有属性分组放在底部,但这只是个人偏好。 - Christopher B. Adkins
谢谢...这对我解决了相同的问题。 - Brandon
2
对我没有用。我需要根据用户安装installscope,并且需要提升安装程序权限,因为某些文件被复制到系统机器范围的文件夹中。我可以使用命令运行它,但我需要在启动时提示UAC对话框。 - Chaitanya Gadkari
谢谢你的回答,你知道为什么需要这个吗? - markmnl
在我的情况下,添加此标记会产生一个.MSI文件,如果双击,则会要求提升权限,但是如果我在UAC窗口上单击“是”,则.MSI似乎可以在没有实际管理员特权的情况下运行。也就是说,它不会安装程序,而右键单击->以管理员身份运行可以很好地安装程序。奇怪... - Fry Simpson

5
将以下内容添加到您的软件包元素中:
<Property Id="ALLUSERS" Value="1" />    <!--equals to install="permachine" at package element but this element depricated -->
<Property Id="MSIUSEREALADMINDETECTION" Value="1" /> 

<Condition Message="Please Run as Administrator.">
      Privileged
</Condition>

然后使用Winrar创建一个简单的sfx压缩归档文件,并使用以下选项:

  • 设置选项卡 > 执行后运行输入:您的msi文件名称

  • 高级选项卡 > 选中请求管理员访问权限复选框


只需要属性和条件就可以了,不需要sfx等其他东西。 - alehro

1

对我而言,我需要通过CustomAction WiX元素运行注册表命令以删除系统环境变量,这需要管理员权限。

https://dev59.com/9F7Va4cB1Zd3GeqPL63n#8657472帖子中提到的那样,使用CustomAction → Impersonate="no"对我很有用。

WiX自定义操作代码:

<CustomAction Id = "Uninstall_MYSYSENV"
              Directory  = "INSTALLFOLDER"
              ExeCommand = 'cmd.exe /c &quot;reg delete       "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session    Manager\Environment" /v MYSYSENV /f&quot;'
              Execute    = "deferred"
              Impersonate= "no"
              Return     = "asyncNoWait"
              />

<InstallExecuteSequence>
      <Custom Action="Uninstall_MYSYSENV"
              After="InstallInitialize">Installed AND NOT UPGRADINGPRODUCTCODE</Custom>
</InstallExecuteSequence>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接