Условные выражения MSBuild в зависимости от параметров задачи - PullRequest
2 голосов
/ 16 апреля 2010

В MSBuild очень просто определить, скажем, PropertyGroup, который зависит от значения свойства Foo:

<PropertyGroup Conditional="'$(Foo)'=='Bar'" />

Возможно ли, чтобы условное выражение зависело от параметра задачи?

Например, я бы хотел использовать значение параметра Link task 'SubSystem примерно так:

<PropertyGroup Conditional="'$(Link/SubSystem)'=='Console'" />

но не знаю, возможно ли это, и если это так, каков правильный синтаксис.

Хотя я довольно новичок в MSBuild, поэтому вполне возможно, что я что-то пропустил.

1 Ответ

0 голосов
/ 18 апреля 2010

У меня нет VC SDK на моей машине, поэтому я не могу попробовать задачу Link, но вы можете попробовать использовать <Output /> Задачи:

...
<PropertyGroup Condition="'$(LinkSubSystem)'=='Console'">
    <MyDependentProp>Whatever</MyDependentProp>
</PropertyGroup>

<Target Name="Linker">
    <Link Sources="@(LinkerSources)" SubSystem="Console">
        <Output TaskParameter="SubSystem" ItemName="LinkSubSystem" />
    </Link>
</Target>
...

Второй подход может состоять в том, чтобы использовать свойство для самого параметра подсистемы Link Task и просто перерабатывать его для вашей PropertyGroup.

...
<PropertyGroup>
    <LinkerSubSystem>Console</LinkerSubSystem>
</PropertyGroup>

<PropertyGroup Condition="'$(LinkerSubSystem)'=='Console'">
    <MyDependentProp>Whatever</MyDependentProp>
</PropertyGroup>

<Target Name="Linker">
    <Link Sources="@(LinkerSources)" SubSystem="$(LinkerSubSystem)" />
</Target>
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...