【问题标题】:How to create a directory in Wix on D:如何在 D 上的 Wix 中创建目录:
【发布时间】:2013-05-15 14:00:02
【问题描述】:

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

【问题讨论】:

  • this 回答你的问题了吗?
  • @JohnWillemse 不,因为我不想更改整个安装的位置。我想在C:\Program Files (x86)下面正常安装,但是我也想在D:下面创建一些文件夹
  • this 有帮助吗?
  • @YanSklyarenko 我发现这个答案不清楚。究竟如何将DATA_FOLDER 的位置设置为D:? (您不能将Name 设置为D:,这是架构不允许的)WindowsVolume 设置有什么帮助? (默认情况下会在C: 上?)

标签: wix wix3.7


【解决方案1】:

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

<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 序列中。考虑到所有其余序列的定义方式,您可能需要将自定义操作之前的值设置为其他值。希望这有用。

【讨论】:

  • 希望得到这个答案。我尝试使用 CROOT 但结果基本上是 D:\root\
  • 我无法让它工作。能否请您发布一个包含所有段的完整代码文件?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多