2012-08-06 111 views
0

所有相關鏈接似乎都假定我在這些目錄中使用DirectoryRefs和CreateFolder。當我跑步時,我得到一個.wxs文件,它由<Directory>標籤和<Component>標籤組成,但不包含DirectoryRefs。我寧願不手動重寫整個5000行文件。有沒有辦法編輯這些標籤的文件夾權限?爲Wix設置文件夾和所有子文件夾的權限

回答

4

您不必重寫heat自動生成的片段。您可以使用另一個片段中的DirectoryRef元素引用在那裏定義的目錄。

最有可能你想做到以下幾點:

首先,在熱產生的片段更改根目錄的ID。這可以通過heat.exe-dr <DirectoryName>命令行開關完成。爲DirectoryName選擇一個名稱,例如MY_ROOT_FOLDER。這對於方便地參考DirectoryRef元素中的那個目錄是必要的

接下來,創建一個特殊組件(在不同的片段中),它只包含權限功能。事情是這樣的:

<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>元素追加權限有問題的文件夾及其所有後代

+0

非常好,謝謝! – nweiler 2012-08-07 21:48:28