2013-05-15 20 views
1

使用WiX 3.7,我已經想出瞭如何在根中創建一個文件夾。這如何在D上的Wix中創建一個目錄:

<Directory Id="ReceivedFilesDir" Name="ReceivedFiles"> 
    <Component Id="ReceivedFilesComponent" Guid="84A264EF-2BC5-41e3-8124-2CA10C2805DB"> 
     <CreateFolder Directory="ReceivedFilesDir"> 
     <Permission User="Administrators" GenericAll="yes" /> 
     </CreateFolder> 
    </Component> 
    </Directory> 

創建一個文件夾C:\ReceivedFiles

我想這是在D:\ReceivedFiles代替。

我該如何做到這一點?

我玩過DiskId屬性,但它似乎沒有做任何事情。

此外,我不想更改整個安裝文件夾,安裝的普通部分仍然會低於C:\Program Files (x86)。我只想在D:上創建其他文件夾。

+0

Does [this](http://stackoverflow.com/a/14364415/1049308)回答你的問題? –

+0

@JohnWillemse不,因爲我不想改變整個安裝的位置。我想在'C:\ Program Files(x86)'下面進行正常的安裝,但是我也想在'D:'下面創建一些文件夾。 –

+1

Does [this](http://stackoverflow.com/questions/5269990/is -it-two-root-directories-in-wix/5270909#5270909)help? –

回答

2

下面是我們用於基本相同需要的解決方案:

<Directory Id="TARGETDIR" Name="SourceDir"> 

    <Directory Id="CROOT" Name="root"> 
     <Directory Id="MY_CROOT" Name="PLACE_HOLDER"> 
      <!-- Define C directory --> 
     </Directory> 
    </Directory> 

    <Directory Id="TROOT" Name="root"> 
     <Directory Id="MY_TROOT" Name="PLACE_HOLDER"> 
      <!-- Define T directory --> 
     </Directory> 
    </Directory> 
</Directory> 

<CustomAction Id="SetCRootDirectory" Property="CROOT" Value="C:\" /> 
<CustomAction Id="SetTRootDirectory" Property="TROOT" Value="T:\" /> 

<InstallExecuteSequence> 
    <Custom Action="SetCRootDirectory" Before="AppSearch" /> 
    <Custom Action="SetTRootDirectory" Before="AppSearch" /> 
</InstallExecuteSequence> 

你可以將它添加到一個UI序列,如果你的安裝利用了這種優勢。您可能需要將「自定義操作之前的值」設置爲某個其他值,並給出所有其餘序列的定義。希望這是有用的。

+0

對此答案抱有希望。我嘗試使用CROOT,但結果基本上是D:\ root \ Geddon

相關問題