我有以下要求:两个文件夹A和B,对于文件a,如果它存在于A中,我们将它构建到我们的安装包中,否则我们使用文件夹B中的文件a作为默认选择。如何实施?请帮忙。
问问题
106 次
1 回答
0
我会说这项工作应该在 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 对 MSBuild 也很友好。
然后构建引擎负责选择正确的${data.folder}
,在您的情况下是 A 或 B 。
于 2011-02-15T08:18:07.523 回答