我想写
<Message Text="Line1\nLine2\nLine3" />
但是
似乎不起作用。我应该更换什么
和?
(我在书中读到,他们说要打印 @ 和 %,我们使用 %40 和 %25,所以我猜应该是换行符的数字)。
试试这个:
<Message Text="Line1%0aLine2%0aLine3%0a" />
CR = 0x0D 或 13
LF = 0x0A 或 10
您可以将这些行放入项目组中
<ItemGroup>
<Lines Include="Line 1 " />
<Lines Include="Line 2 " />
<Lines Include="Line 3 " />
</ItemGroup>
<Message Text="%(Lines.Identity)"/>
将多行消息放入属性中(在下面的示例中称为
MyMultilineMessage
),然后在消息文本中使用该属性。 (至少适用于 VisualStudio 2019 的 MSBuild)
<PropertyGroup>
<MyMultilineMessage>
Lorum ipsum...
</MyMultilineMessage>
</PropertyGroup>
<Message Importance="High" Text="$(MyMultilineMessage)"/>
这也适用于
Error
元素。
编辑: 在对缺少
PropertyGroup
进行评论后修改了上面的 XML 示例。
我知道问题是针对换行符提出的,所以这不是直接答案,但可能对某些人有帮助
项目文件中的“真实”换行将实际打印:
<Message Text="Line1
Line2
Line3" Importance="High" />
请注意,Line2 和 Line3 的任何前缀空格和制表符也将被打印。