Сообщения PostSharp на уровне ImportantInfo не отображаются в списке ошибок Visual Studio - PullRequest
1 голос
/ 05 мая 2020

Я пытаюсь разработать простой аспект - InformationAttribute - на основе ScalarConstraint, целью которого является вывод / добавление в список ошибок Visual Studio во время компиляции сообщения. Мне нужно именно информационное сообщение, а не предупреждение, так что обработка предупреждений как ошибок, et c., Не приведет к остановке компиляции; эти сообщения предназначены, например, для напоминания разработчикам о том, что использование определенных аспектов в проекте требует использования конкретной библиотеки плагинов PostSharp или что определенные тесты требуют определенных внешних предварительных условий.

Теоретически это должно быть просто , тем более что у меня уже есть рабочий WarningAttribute, который выполняет ту же работу, что и предупреждение. Однако простое изменение SeverityType в вызове на Message.Write, таким образом:

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

не работает, хотя в документации PostSharp указано, что сообщения, написанные на SeverityType.ImportantInfo показаны в списке ошибок Visual Studio в разделе «Сообщения». Я могу подтвердить, что, когда msbuild вызывается из командной строки, эти сообщения выводятся на консоль, но они не отображаются в VS, когда сборка запускается оттуда.

Я пока не нашел хорошей линии атаки, или, к сожалению, у кого-то есть подобные проблемы; Кто-нибудь решил эту проблему или есть хороший подход к ее решению?

1 Ответ

2 голосов
/ 05 мая 2020

Я подтверждаю, что эта функция не работает, и мы пока не знаем, какая часть конвейера виновата - PostSharp или Visual Studio.

У вас есть два варианта: выдать предупреждение или выдать всплывающая подсказка с использованием IWeavingSymbolsService. Вы можете получить этот интерфейс через `PostSharpEnvironment.CurrentProject.GetService.

Я создал отчет об ошибке , и мы посмотрим, сможем ли мы исправить это или нам нужно будет исправить документацию.

...