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

cra*_*her 16 msbuild

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

<Error Text="Some Text" Condition="'$(StringName)' != 'Test'"/>
Run Code Online (Sandbox Code Playgroud)

这里的字符串比较区分大小写,所以当$(StringName)类似'test'的情况下,条件不满足.

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

小智 34

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'"/>
Run Code Online (Sandbox Code Playgroud)

  • `ToUpperInvariant` 可能更可取 (2认同)

Aar*_*sen 14

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

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

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

将输出

ALL CAPS
all lower
Run Code Online (Sandbox Code Playgroud)

我很确定你的脚本中有别的东西会变得奇怪.


ogg*_*gre 5

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

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


Jer*_*ein -12

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