MSBuild 条件

MSBuild 支持一组特定的条件,这些条件可以应用于允许使用 Condition 特性的任何情况。 下表说明了这些条件。

Condition

描述

'stringA' == 'stringB'

如果 stringA 等于 stringB,则计算结果为 true。

例如:

Condition="'$(CONFIG)'=='DEBUG'"

对于简单的字母数字字符串或布尔值,不需要使用单引号。 但是,空值需要使用单引号。

'stringA' != 'stringB'

如果 stringA 不等于 stringB,则计算结果为 true。

例如:

Condition="'$(CONFIG)'!='DEBUG'"

对于简单的字母数字字符串或布尔值,不需要使用单引号。 但是,空值需要使用单引号。

<、>、<=、>=

计算操作数的数值。 如果关系计算的结果为 true,则返回 true。 操作数的计算结果必须为十进制数或十六进制数。 十六进制数必须以“0x”开头

说明说明
在 XML 中,必须对 < 和 > 字符进行转义。符号 < 表示为 &lt;。符号 > 表示为 &gt;。

Exists('stringA')

如果存在名称为 stringA 的文件或文件夹,则计算结果为 true。

例如:

Condition="!Exists('$(builtdir)')"

对于简单的字母数字字符串或布尔值,不需要使用单引号。 但是,空值需要使用单引号。

HasTrailingSlash('stringA')

如果指定的字符串包含以反斜杠 (\) 或正斜杠结尾 (/) 的字符,则计算结果为 true。

例如:

Condition="!HasTrailingSlash('$(OutputPath)')"

对于简单的字母数字字符串或布尔值,不需要使用单引号。 但是,空值需要使用单引号。

!

如果操作数计算的结果为 false,则计算结果为 true。

And

如果两个操作数计算的结果均为 true,则计算结果为 true。

Or

如果至少一个操作数计算的结果为 true,则计算结果为 true。

()

如果内部包含的表达式的计算结果为 true,则分组机制的计算结果为 true。

请参见

任务

演练:从头开始创建 MSBuild 项目文件

参考

MSBuild 的条件构造

其他资源

MSBuild 参考