J'essaie de définir une valeur par défaut pour une propriété MSBuild. Disons que je commence par ceci:Pourquoi ce script MSBuild ne définit-il pas la propriété comme je le souhaite?
<Choose>
<When Condition="..something..">
<PropertyGroup>
...
<MySetting>true</MySetting>
<PropertyGroup>
</When>
...
</Choose>
Si la condition n'est pas vraie, alors MySetting sera ''. Donc, cela ne devrait-il pas être faux?
<PropertyGroup>
<MySetting Condition="'$(MySetting)'==''">false</MySetting>
</PropertyGroup>
Plus tard, je voudrais utiliser MySetting dans une condition sans avoir à tester == « true », comme ceci:
<PropertyGroup Condition="$(MySetting)">
...
</PropertyGroup>
Pourtant, quand je charge ce projet dans Visual Studio il se plaint que la condition spécifiée "$ (MySetting)" évalue à "" au lieu d'un booléen.
Il semble donc que ma condition qui vérifie que '' assigne la propriété à false est incorrecte. Qu'est-ce que je fais mal?
Ceci est une meilleure façon de définir la valeur par défaut. Je vais le faire à la place, merci. Mais je ne comprends toujours pas pourquoi le bloc central de code dans la question initiale ne définit pas la propriété à false. Je teste contre '' pour définir la propriété sur false. Pourquoi ça ne marche pas? – scobi
@Scott Bilas: Êtes-vous en train de dire après la '' MySetting Condition = "'$ (MySetting)' == ''"> false 'fonctionne, la valeur est toujours' '' ''? –
Oui, selon le compilateur. C'est comme si cet ensemble de propriétés ne se produisait jamais. – scobi