Wix安装的文件提升权限

时间:2013-03-21 16:50:32

标签: installer wix wix3.5 vdproj

我有一个WiX项目,它会在位于ProgramFiles的文件夹上安装一些可执行文件和库。

运行其中一个可执行文件时出现问题。其中一些需要以Administrator执行才能执行它应该执行的所有任务。如果我右键单击它,并以管理员身份运行它,它运行良好。但是我希望WiX能够自己提升我文件的权限。

有什么办法吗?

我试过这样做:

<Package Id="$(var.GUID_Package)"
         InstallPrivileges="elevated"
         InstallScope="perMachine" ...>

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

但这两个选项仅适用于.msi包(不适用于已安装的文件)。

注意:我认为我没有正确解释自己...我的问题来自我安装的文件的权限。由于权限,我无法正确执行它们。当我以管理员身份运行它们时,很明显,所有权限都可以正确执行。所以我要做的就是更改我遇到问题的每个文件的权限。

3 个答案:

答案 0 :(得分:0)

安装程序中的任何操作都无法解决此问题。

如果exe正在进行一次性设置,例如修改Prog文件目录中的文件/文件夹,考虑将其移动到wix安装程序中。

如果它是每次运行时发生的事情,您将需要确定它正在做什么并尝试进行更改,以便它以不需要提升的方式执行。如果不可能你将不得不提升我害怕。唯一的另一种方法是将本地计算机策略设置为automatically elevate for administrators

答案 1 :(得分:0)

您可以选择将msi转换为exe,当用户执行exe时,它会提示用户以管理员身份运行。

我正在使用dontnetinstaller并且它完美无缺。

答案 2 :(得分:-1)

对于那些可能感兴趣的人,我找到了解决方案。

首先,我在.wxs项目中添加了对WixUtilExtension的引用,您可以在WiX文件夹中找到该引用。

您也可以将其添加为外部参考,如下所示:

xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"

之后,我可以在本地使用PermissionEx

   <File Id="$(var.productFamily)$(var.productSummary)"
      Name="$(var.productFamily)$(var.productSummary).exe"
      DiskId="1" KeyPath="yes"
      Source="$(var.release)$(var.productFamily)$(var.productSummary).exe" >
      <util:PermissionEx User="Everyone" GenericAll="yes" ChangePermission="yes" />
  </File>

由此我可以提升他们的权限。