我正在尝试在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="" [SystemFolder]cmd.exe" cacls "[Folder]." /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>
答案 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">