你能在MSBuild中执行不区分大小写的字符串比较吗?

时间:2009-10-12 12:00:01

标签: msbuild

我在MSBuild项目文件中有以下代码:

<Error Text="Some Text" Condition="'$(StringName)' != 'Test'"/>

此处的字符串比较区分大小写,因此当$(StringName)类似于'test'时,不符合条件。

如何更改条件以便'test'也符合比较? MSBuild中是否有任何不区分大小写的比较函数?

5 个答案:

答案 0 :(得分:31)

Dan Moseley在这里详细介绍了MSBuild属性函数:

http://blogs.msdn.com/b/visualstudio/archive/2010/04/02/msbuild-property-functions.aspx

对于您的示例,您可以使用以下内容:

<Error Text="Some Text" Condition="'$(StringName.ToUpper())' != 'TEST'"/>

答案 1 :(得分:13)

MSBuild字符串比较不区分大小写:

<PropertyGroup>
    <MyProperty>FOOBAR</MyProperty>
</PropertyGroup>

<Message Text="ALL CAPS" Importance="high" Condition="'$(MyProperty)' == 'FOOBAR'" />
<Message Text="all lower" Importance="high" Condition="'$(MyProperty)' == 'foobar'" />

将输出

ALL CAPS
all lower

我很确定你的剧本中其他东西会变得奇怪。

答案 2 :(得分:4)

答案 3 :(得分:1)

使用带有特殊参数的MSBuild属性函数来执行不区分大小写的字符串比较:

<Error Text="Some Text" Condition="!$(StringName.Equals('Test', StringComparison.OrdinalIgnoreCase))"/>

答案 4 :(得分:-8)

不,没有。你必须自己写。