41

フォルダーのアクセス許可を設定する方法を知っています。

<DirectoryRef Id="ProgramFilesFolder">
  <Directory Id="PHPFolder" Name="PHP">
    <Component Id="PHP_comp" DiskId="1" Guid="*">
      <CreateFolder>
        <Permission User="Everyone" GenericAll="yes" />
      </CreateFolder>

ただし、すべてのサブフォルダーにもアクセス許可を適用する必要があります。すべてのフォルダを一覧表示せずにこれは可能ですか?

4

3 に答える 3

40

まず、代わりにPermissionExを使用することをお勧めします。これは標準の WiX 拡張機能であり、Permission よりも大きな利点が 1 つあります。上書きはしませんが、ACL を変更します。また、既定では、フォルダーとそのすべての子孫ファイルおよびフォルダーにアクセス許可が適用されるため、特別に指定する必要はありません。

お役に立てれば。

于 2010-11-25T07:20:57.873 に答える
32

私は解決しました:異なる PermissionEx が Wix および Util スキーマで定義されています(Wix PermissionExおよびUtil Extension PermissionEx

Utilバージョンを使用しました:

  • WixUtilExtension アセンブリへの参照を追加します
  • UtilExtension 名前空間を Wix タグに追加します。
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
  • Util PermissionEx バージョンを指定します。
<CreateFolder Directory="DirectoryToManage">
    <util:PermissionEx User="Users" GenericAll="yes" />
</CreateFolder>
于 2012-12-04T14:24:47.137 に答える
23
<DirectoryRef Id="INSTALLFOLDER">
        <Component Id="INSTALLFOLDER_Permission" Guid="*">
            <CreateFolder>
                <util:PermissionEx User="Users" GenericAll="yes"/>
            </CreateFolder>
        </Component>
    </DirectoryRef>

上記の答えは正しいので、このフォルダー内のすべてのフォルダーとファイルにアクセス許可を設定します。

注意: CreateFolder タグはコンポーネント内にある必要があり、このコンポーネントはフィーチャーに追加する必要があります。

また、これをコンパイラとリンカのコマンド ラインに追加する必要があります。

-ext WixUIExtension -ext WixUtilExtension
于 2014-03-29T19:35:24.637 に答える