【发布时间】:2011-02-15 02:12:17
【问题描述】:
我有以下要求: 两个文件夹 A 和 B,对于文件 a,如果它存在于 A 中,我们将它构建到我们的安装包中,否则我们使用文件夹 B 中的文件 a 作为默认选择。如何实施?请帮忙。
【问题讨论】:
标签: wix filechooser
我有以下要求: 两个文件夹 A 和 B,对于文件 a,如果它存在于 A 中,我们将它构建到我们的安装包中,否则我们使用文件夹 B 中的文件 a 作为默认选择。如何实施?请帮忙。
【问题讨论】:
标签: wix filechooser
我会说这项工作应该在 WiX 和您的构建引擎之间分配。此外,大部分的责任都在于构建引擎。
在 WiX 中,您可以通过以下方式(它是 Component 元素的子元素)创作相关文件(我们称之为 a.txt):
<File Id="myfile" KeyPath="yes" Source="$(var.DataFolder)\a.txt" />
这样,您应该将 DataFolder 变量的值传递给candle.exe(WiX 的编译器)。这可以通过多种方式完成,通过命令行或通过项目设置(如果您创作 *.wixproj)。假设您使用第一个选项进行此操作,并且您的构建引擎是 NAnt:
<candle out="${out}\\" rebuild="true">
<defines>
...
<define name="DataFolder" value="${data.folder}" />
...
</defines>
<sources basedir="${dir}">
<include name="**.wxs"/>
</sources>
</candle>
请注意,这只是一个示例,供您参考。 WiX 也是friendly with MSBuild。
然后构建引擎负责选择正确的${data.folder},在您的情况下是 A 或 B。
【讨论】: