1

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

信息 1721。此 Windows 安装程序包有问题。无法运行完成此安装所需的程序。请联系您的支持人员或软件包供应商。操作:SetPermissions,位置:,命令:“c:\Windows\SysWOW64\cmd.exe” cacls “c:\Program Files\Test” /g 每个人: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>
4

1 回答 1

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">
于 2012-12-20T16:52:16.353 回答