フォルダーのアクセス許可を設定する方法を知っています。
<DirectoryRef Id="ProgramFilesFolder">
<Directory Id="PHPFolder" Name="PHP">
<Component Id="PHP_comp" DiskId="1" Guid="*">
<CreateFolder>
<Permission User="Everyone" GenericAll="yes" />
</CreateFolder>
ただし、すべてのサブフォルダーにも権限を適用する必要があります。これは、すべてのフォルダーを一覧表示せずに可能ですか?
まず、代わりに PermissionEx を使用することをお勧めします。これは標準のWiX拡張であり、Permissionよりも非常に大きな利点があります。上書きはしませんが、ACLを変更します。また、デフォルトでは、フォルダーとそのすべての子孫ファイルおよびフォルダーにアクセス許可を適用するので、追加で何も指定する必要はありません。
お役に立てれば。
私は解決しました:WixとUtilスキーマで異なるPermissionExが定義されています( Wix PermissionEx および til Extension PermissionEx )
私はUtilバージョンを使用しました:
<Wix xmlns="http://schemas.Microsoft.com/wix/2006/wi" xmlns:util="http://schemas.Microsoft.com/wix/UtilExtension">
<CreateFolder Directory="DirectoryToManage"> <util:PermissionEx User="Users" GenericAll="yes" /> </CreateFolder>
<DirectoryRef Id="INSTALLFOLDER">
<Component Id="INSTALLFOLDER_Permission" Guid="*">
<CreateFolder>
<util:PermissionEx User="Users" GenericAll="yes"/>
</CreateFolder>
</Component>
</DirectoryRef>
上記の答えは正解です。このフォルダー内のすべてのフォルダーとファイルにアクセス許可を設定します。
注:CreateFolderタグはコンポーネント内にある必要があり、このコンポーネントはフィーチャーに追加する必要があります。
また、これをコンパイラーのコマンドラインに追加する必要がありますandリンカー:
-ext WixUIExtension -ext WixUtilExtension