0

所有相关链接似乎都假定我在其中使用 DirectoryRefs 和 CreateFolder。当我运行 heat 时,我得到一个 .wxs 文件,其中包含<Directory>标签和<Component>标签,但不包含 DirectoryRefs。我宁愿不手动重写整个 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 回答