Выдача пользовательских предупреждений компилятора при написании пользовательского Msbuildtask

Я использую msbuildtask для проверки XML-файла в сборке. Я могу сделать это с помощью метода Execute после расширения Task. Я не могу отображать настраиваемые предупреждения или сообщения с указанием причины сбоя сборки. Есть ли какой-нибудь собственный способ вывести предупреждение компилятора из кода?


person Access Denied    schedule 07.05.2012    source источник


Ответы (2)


Я обнаружил, что использование интерфейса ITask дает нам дополнительные возможности взаимодействия с движком Msbuild, чем интерфейс Task.

  • Реализуйте интерфейс ITask для класса и добавьте код для выполнения задачи ur в его методе Execute.
  • Добавьте эту задачу в файл csproj.
  • При реализации интерфейса ITask есть способ связаться с компилятором и передать ему сообщения, предупреждения или ошибки. Вот базовый пример класса, который реализует интерфейс ITask http://blogs.msdn.com/b/msbuild/archive/2006/01/21/515834.aspx
person Access Denied    schedule 08.05.2012

Определите имя WARN, а затем напишите куда-нибудь

#if WARN
#warning (Warning message)
#endif

Кстати, это тоже можно сделать с #error.

person phipsgabler    schedule 07.05.2012
comment
есть ли способ использовать в этом предупреждения, полученные из исключения? exp.Message можно так использовать? Перешли к нему? - person Access Denied; 07.05.2012
comment
Я думаю, что сообщение должно быть жестко закодировано, но я не уверен. Можете попробовать, работает ли он в тестовом проекте. - person phipsgabler; 07.05.2012