如何在D上的Wix中创建目录:

时间:2013-05-15 14:00:03

标签: wix wix3.7

使用WiX 3.7,我已经找到了如何在根目录中创建文件夹。此

  <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:上创建其他文件夹。

1 个答案:

答案 0 :(得分:3)

以下是我们用于基本相同需求的解决方案:

<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序列中。您可能需要将自定义操作前值设置为其他值,并给出其他所有序列的定义。希望这很有用。