如何在构建安装包时自动选择源文件

时间:2011-02-15 02:12:18

标签: wix filechooser

我有以下要求: 两个文件夹A和B,对于文件a,如果它存在于A中,我们将它构建到我们的安装包中,否则我们使用文件夹B中的文件a作为默认选择。怎么实现这个?请帮忙。

1 个答案:

答案 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。