【问题标题】:Wix custom action execute cmd not workingWix 自定义操作执行 cmd 不起作用
【发布时间】:2012-12-08 05:17:24
【问题描述】:

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

信息 1721。此 Windows 安装程序包有问题。无法运行完成此安装所需的程序。请联系您的支持人员或软件包供应商。操作:SetPermissions,位置:,命令:"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>

【问题讨论】:

    标签: wix custom-action


    【解决方案1】:

    您可以在 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">
    

    【讨论】:

    • 太好了,谢谢,在尝试使用自定义操作但未包含
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多