我想写<Message Text="Line1\nLine2\nLine3" />
但是\ n似乎没有用。我该怎么替换?
(我在书中读到他们说要打印@和%我们使用%40和%25,所以我想应该是新行的数字。)
答案 0 :(得分:32)
试试这个:
<Message Text="Line1%0aLine2%0aLine3%0a" />
答案 1 :(得分:19)
CR = 0x0D或13
LF = 0x0A或10
答案 2 :(得分:1)
这是一个更好的方法。在普通的msbuild文件中使用“ Escape()”属性函数[1],如下所示:
<Message Text="$([MSBuild]::Escape('A\r\nB\r\nC\r\n')" />
'Escape()'属性函数应该在转义外来字符方面发挥所有作用。
[1] https://docs.microsoft.com/en-us/visualstudio/msbuild/how-to-escape-special-characters-in-msbuild?view=vs-2017和https://docs.microsoft.com/en-us/visualstudio/msbuild/property-functions?view=vs-2017
答案 3 :(得分:0)
将多行消息放在一个属性中,然后在消息文本中使用该属性。(至少适用于 VisualStudio 2019 的 MSBuild)
<PropertyGroup>
<Property>
<MyMultilineMessage>
Lorum ipsum...
</MyMultilineMessage>
</Property>
</PropertyGroup>
<Message Importance="High" Text="$(MyMultilineMessage)"/>
这也适用于 Error
元素。
编辑:在对缺少 PropertyGroup
的评论后修改了上面的 XML 示例。
答案 4 :(得分:0)
您可以将这些行放入一个项目组
<ItemGroup>
<Lines Include="Line 1 " />
<Lines Include="Line 2 " />
<Lines Include="Line 3 " />
</ItemGroup>
<Message Text="%(Lines.Identity)"/>