在MSBuild中创建具有布尔表达式结果的属性

时间:2013-09-20 08:26:24

标签: msbuild maintainability

有没有一种巧妙的方法来创建在MSBuild中使用的“布尔”属性?我可以在Condition属性中评估表达式,但不能在CreateProperty任务的Value属性中进行评估。

我想做这样的事情:

<CreateProperty Value="'$(IncludeInBuild)'=='' OR 
    '$([System.Text.RegularExpressions.Regex]::IsMatch($(MSBuildProjectFullPath), 
    $(IncludeInBuild)'=='True'">
    <Output TaskParameter="Value" PropertyName="MatchesInclude" />
</CreateProperty>

给我的不是真或假,而是

''=='' OR '$([System.Text...

我可以评估布尔表达式并使用结果设置属性吗?我现在的解决方法就是在条件属性中重复表达式,只要我需要它。

1 个答案:

答案 0 :(得分:11)

如果条件通过,如果创建一个默认属性'false'并且条件赋值为真,那该怎么办?

<PropertyGroup>
    <MatchesInclude>false</MatchesInclude>
    <MatchesInclude Condition="'$(IncludeInBuild)'=='' OR 
    '$([System.Text.RegularExpressions.Regex]::IsMatch($(MSBuildProjectFullPath), 
    $(IncludeInBuild)'=='True'">true</MatchesInclude>
</PropertyGroup>