1

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>
4

1 に答える 1

4

カスタム アクションなしで、Wix 内でやりたいことを実行できます。

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

Util 拡張機能を使用するには、WixUtilExtension アセンブリへの参照を追加し、次のように wsx ファイルの Wix タグに UtilExtension 名前空間を追加する必要があります。

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
于 2012-12-20T16:52:16.353 に答える