有没有办法在使用<Message...>时打印换行符?

问题描述 投票:0回答:5

我想写

<Message Text="Line1\nLine2\nLine3" />
但是 似乎不起作用。我应该更换什么 和?

(我在书中读到,他们说要打印 @ 和 %,我们使用 %40 和 %25,所以我猜应该是换行符的数字)。

msbuild
5个回答
49
投票

试试这个:

<Message Text="Line1%0aLine2%0aLine3%0a" />


22
投票

CR = 0x0D 或 13

LF = 0x0A 或 10


2
投票

您可以将这些行放入项目组中

<ItemGroup>
      <Lines Include="Line 1 " />
      <Lines Include="Line 2 " />
      <Lines Include="Line 3 " />
</ItemGroup>

<Message Text="%(Lines.Identity)"/>

1
投票

将多行消息放入属性中(在下面的示例中称为

MyMultilineMessage
),然后在消息文本中使用该属性。 (至少适用于 VisualStudio 2019 的 MSBuild)

    <PropertyGroup>
      <MyMultilineMessage>

Lorum ipsum...
      </MyMultilineMessage>
    </PropertyGroup>

    <Message Importance="High" Text="$(MyMultilineMessage)"/>

这也适用于

Error
元素。

编辑: 在对缺少

PropertyGroup
进行评论后修改了上面的 XML 示例。


0
投票

我知道问题是针对换行符提出的,所以这不是直接答案,但可能对某些人有帮助

项目文件中的“真实”换行将实际打印:

<Message Text="Line1
Line2
Line3" Importance="High" />

请注意,Line2 和 Line3 的任何前缀空格和制表符也将被打印。

© www.soinside.com 2019 - 2024. All rights reserved.