如何在 D 上的 Wix 中创建目录:
Posted
技术标签:
【中文标题】如何在 D 上的 Wix 中创建目录:【英文标题】:How to create a directory in Wix on D: 【发布时间】: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:
上?)
【参考方案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\ 我无法让它工作。能否请您发布一个包含所有段的完整代码文件?以上是关于如何在 D 上的 Wix 中创建目录:的主要内容,如果未能解决你的问题,请参考以下文章