转义 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
。