2010-04-16 5 views
2

Dans MSBuild, il est facile de définir, par exemple, un PropertyGroup qui dépend de la valeur d'une propriété Foo:MSBuild conditionals en fonction de paramètres de la tâche

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

Est-il possible pour le conditionnel à dépendre d'un paramètre de tâche ?

Par exemple, je voudrais utiliser la valeur du paramètre de SubSystemLink task à peu près comme ceci:

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

mais je ne sais pas s'il est possible, et si elle est, ce que le la syntaxe correcte est. Je suis assez nouveau pour MSBuild, donc il est parfaitement possible que j'ai raté quelque chose.

+0

Tu as une faute de frappe là: il est '' pas Condition' Conditional' – Filburt

+0

était ma réponse de toute utilisation pour vous? – Filburt

Répondre

0

Je n'ai pas le SDK VC sur ma machine ici, donc je ne peux pas essayer une Link tâche, mais vous pouvez essayer d'utiliser la <Output /> du Groupe:

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

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

Une seconde approche pourrait être de utilisez une propriété pour le paramétre de tâche de sous-système de lien lui-même juste le recyclez pour votre PropertyGroup.

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

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

<Target Name="Linker"> 
    <Link Sources="@(LinkerSources)" SubSystem="$(LinkerSubSystem)" /> 
</Target> 
... 
Questions connexes