0

関連するすべてのリンクは、これらの中で DirectoryRefs と CreateFolder を使用していることを前提としているようです。<Directory>heat を実行すると、タグとタグで構成されるが DirectoryRefs ではない .wxs ファイルが生成されます<Component>。5000 行のファイル全体を手作業で書き直すのは避けたいと思います。これらのタグのフォルダーのアクセス許可を編集する方法はありますか?

4

1 に答える 1

5

heat自動生成されたフラグメントを書き換える必要はありません。別のフラグメントの DirectoryRef 要素を使用して、そこで定義されたディレクトリを参照できます。

ほとんどの場合、次のことを行います。

まず、熱で生成されたフラグメントのルート ディレクトリの ID を変更します。これは、 の-dr <DirectoryName>コマンド ライン スイッチで実行できますheat.exe。の名前を選択しDirectoryNameますMY_ROOT_FOLDERDirectoryRefこれは、要素内のそのディレクトリへの便利な参照に必要です

次に、パーミッション機能のみを含む特別なコンポーネントを (別のフラグメントで) 作成します。このようなもの:

<DirectoryRef Id="MY_ROOT_FOLDER">
  <Component DiskId="1" Id="Permissions" Guid="GUID-GOES-HERE">
    <Condition>...</Condition>
    <CreateFolder>
      <util:PermissionEx GenericAll="yes" User="[LOGON_ACCOUNT]" Domain="[LOGON_DOMAIN]" />
    </CreateFolder>
  </Component>
</DirectoryRef>

最後に、選択した機能にこのコンポーネントを含めることを忘れないでください。

デフォルトでは、<util:PermissionEx>要素は問題のフォルダとそのすべての子孫にアクセス許可を追加することに注意してください。

于 2012-08-07T06:27:33.073 に答える