我有以下要求: 两个文件夹A和B,对于文件a,如果它存在于A中,我们将它构建到我们的安装包中,否则我们使用文件夹B中的文件a作为默认选择。怎么实现这个?请帮忙。
答案 0 :(得分:0)
我想说这个工作应该在WiX和你的构建引擎之间分开。此外,大部分责任都是建立引擎。
在WiX中,您可以通过以下方式创建有问题的文件(让我们称之为a.txt
)(它是Component元素的子元素):
<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。