在WiX 3.5中支持不同的AfterBuild行为

时间:2011-08-31 16:16:27

标签: wix windows-installer target conditional-statements

我完全没有找到有关支持Target的多个条件的信息。具体来说,根据项目配置,我希望AfterBuild做不同的事情。

例如,如果项目配置为A,我想运行批处理a.bat,如果项目配置为B,则运行b.bat。我的WiX项目文件具有以下目标:

<Target Name="AfterBuild" Condition="'$(Configuration)'=='A'">
    <Exec Command="c:\installers\a.bat" />
</Target>
<Target Name="AfterBuild" Condition="'$(Configuration)'=='B'">
    <Exec Command="c:\installers\b.bat" />
</Target>

现在,WiX专家已经知道这不起作用。当 编译并执行时,WiX只会尊重最后AfterBuild目标的愿望。我查看了有关在<Condition>中使用Target的信息,但看起来这只对其他元素有效。

任何人都可以使用正确的XML语言来支持目标中的多个条件吗?

编辑 - 也许唯一的答案是将$(配置)作为参数传递,然后让批处理文件排序?

1 个答案:

答案 0 :(得分:1)

我觉得自己很蠢。 Condition不仅有Target属性,而且您还可以将其与Exec(以及我正在使用的Copy之类的其他属性一起使用)。因此,您只需在<Exec>目标中放置多个<Copy>AfterBuild元素,就可以了。