Visual Studio 错误列表中未显示 ImportantInfo 级别的 PostSharp 消息

PostSharp Messages at ImportantInfo level not shown in Visual Studio error list

我正在尝试开发一个简单的方面 - InformationAttribute - 基于 ScalarConstraint 其目的是在编译时 output/add 到 Visual Studio 错误列表信息。我特别想要一条信息性消息而不是警告,这样将警告视为错误等不会导致编译中断;例如,这些消息旨在提醒开发人员在项目中使用某些方面需要使用特定的 PostSharp 插件库,或者某些测试需要特定的外部前提条件。

从理论上讲,这应该很简单,特别是因为我已经有了一个可以正常工作的 WarningAttribute,它可以完成与警告相同的工作。但是,只需将调用中的 SeverityType 更改为 Message.Write,因此:

public override void ValidateCode (object target)
{
    Message.Write (MessageLocation.Of (target),
                   SeverityType.ImportantInfo
                   "WA001",
                   this.reason) ;
}

不起作用,即使 PostSharp documentation 指出在 SeverityType.ImportantInfo 处写入的消息显示在 Visual Studio 的消息下的错误列表中。我 可以 确认,当从命令行调用 msbuild 时,这些消息会输出到控制台,但是当构建是 运行 从那里开始。

不幸的是,到目前为止我还没有找到好的攻击路线,或者任何遇到类似问题的人;有没有人解决过这个问题或者有好的解决方法?

我确认此功能已损坏,我们还不知道应该归咎于管道的哪一部分 - PostSharp 或 Visual Studio。

您有两个选择:发出警告,或 emit a tooltip 使用 IWeavingSymbolsService。你可以通过`PostSharpEnvironment.CurrentProject.GetService.

获取这个接口

我创建了一个 bug report,我们会看看是否可以修复或者是否需要修复文档。