Wix自定义操作执行cmd不起作用

时间:2012-12-20 16:23:09

标签: wix custom-action

我正在尝试在wix安装期间执行自定义操作,并在调用自定义操作时收到错误。我想使用cacls将权限组“Everyone”完全控制添加到文件夹中。当我从cmd运行它时工作正常,但从安装程序它不起作用。以下是来自wix安装日志的错误消息。

Info 1721.此Windows Installer程序包存在问题。无法运行此安装所需的程序。请联系您的支持人员或包装供应商。操作:SetPermissions,location :,命令:“c:\ Windows \ SysWOW64 \ cmd.exe”cacls“c:\ Program Files \ Test”/ g everyone:f / e

这是我在wix文件中的自定义操作

<CustomAction Id="SetPermissions" Property="PermissionsAction" ExeCommand="&quot;   [SystemFolder]cmd.exe&quot; cacls &quot;[Folder].&quot; /g everyone:f /e" Execute="immediate" Return="ignore"  />
<CustomAction Id="PermissionsAction" BinaryKey="WixCA" DllEntry="CAQuietExec"   Execute="deferred" Return="ignore" Impersonate="no"/>
<InstallExecuteSequence>
  <Custom Action="SetPortalDataPermissions" Before="InstallFinalize">
  </Custom>
</InstallExecuteSequence>

1 个答案:

答案 0 :(得分:4)

您可以在没有自定义操作的情况下在Wix中执行您想要执行的操作:

<CreateFolder Directory="DirectoryToSetPermissions">
 <util:PermissionEx User="Everyone" GenericAll="yes" />
</CreateFolder>

要使用Util扩展,您必须添加对WixUtilExtension程序集的引用,并将UtilExtension命名空间添加到wsx文件中的Wix标记,如下所示:

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
相关问题