转义 MSBuild 中的特殊字符

某些字符在 MSBuild 项目文件中具有特殊意义。 例如,这些字符包括分号 (;) 和星号 (*)。 有关这些特殊字符的完整列表,请参阅 MSBuild 特殊字符

若要将这些特殊字符用作项目文件中的文本,必须使用语法 %<xx> 指定它们,其中 <xx> 表示字符的 ASCII 十六进制值。

MSBuild 特殊字符

一个使用特殊字符的例子便是项列表的 Include 属性。 例如,以下项列表声明两个项:MyFile.cs 和 MyClass.cs

<Compile Include="MyFile.cs;MyClass.cs"/>

若要声明名称中包含分号的项,必须使用 %<xx> 语法转义分号,并阻止 MSBuild 声明两个独立项。 例如,以下项转义分号,并且声明一个名为 MyFile.cs;MyClass.cs 的项。

<Compile Include="MyFile.cs%3BMyClass.cs"/>

也可以使用属性函数转义字符串。 例如,下面的示例等效于上面的示例。

<Compile Include="$([MSBuild]::Escape('MyFile.cs;MyClass.cs'))" />

将 MSBuild 特殊字符用作文本字符

使用表示法 %<xx> 替换特殊字符,其中 <xx> 表示 ASCII 字符的十六进制值。 例如,若要将星号 (*) 用作文本字符,请使用值 %2A