0

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

4

1 回答 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 回答