Поддержка различных поведений AfterBuild в WiX 3.5 - PullRequest
1 голос
/ 31 августа 2011

Мне абсолютно не повезло найти информацию о поддержке нескольких условий для цели.В частности, в зависимости от конфигурации проекта, я бы хотел, чтобы AfterBuild делал разные вещи.

Например, я хочу запустить пакет a.bat, если моя конфигурация проекта A, и b.bat, еслимоя конфигурация проекта B. Мой файл проекта 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 Target.Я искал информацию об использовании <Condition> в Target, но похоже, что он действителен только для других элементов.

Может ли кто-нибудь представить правильный язык XML для поддержки нескольких условий в Targets?

РЕДАКТИРОВАТЬ - возможно, единственный ответ - передать $ (Configuration) в качестве аргумента, а затем позволить пакетному файлу разобраться?

1 Ответ

1 голос
/ 31 августа 2011

Я чувствую себя глупо.Не только есть атрибут Condition для Target, но вы также можете использовать его с Exec (и другими, такими как Copy, который я использую).Так что вам просто нужно поместить несколько элементов <Exec> и <Copy> в цель AfterBuild, и это сработает.

...