Преодоление многословности MSBuild при входе в систему из собственного компилятора C # в Visual Studio - PullRequest
1 голос
/ 08 марта 2019

Я добавил пользовательский компилятор на этапе сборки для моего проекта Visual Studio 2017, используя тег <CscToolExe>my_compiler.exe</CscToolExe> в файле csproj.Все работает отлично, за исключением того, что я не могу понять, как заставить компилятор правильно выводить информацию в окно вывода Visual Studio «Build».Я пробовал Console.Write, Debug.Write и Trace.Write, но их вывод не отображается в окне вывода сборки.Единственный способ заставить сообщения появляться в журнале без какой-либо дополнительной настройки в VS, это отформатировать их как предупреждения или ошибки:

Console.Write("warning: Message LOGGED!");
Console.Write("error: Not a good place for a message...");

Если я задаю многословность MSBuild как Обычная / Подробная / Диагностическая,тогда я вижу нормальный вывод Console.Write.Но сообщения, которые я пишу, имеют большое значение, и я бы хотел, чтобы они всегда отображались с настройкой по умолчанию «Минимальная» подробность сборки.Я знаю, что вы можете использовать

<Message Importance="High" Text="Look at me!!" />

в настройках MSBuild для вывода сообщений в журнал, но я не знаю, как получить аналогичные функции из моего компилятора.

Короче говоря, есть ли способ получить те же функции переопределения многословия сборки, что и Message.Importance, используя Console.Write или Debug.Write в моем компиляторе?Функция фэнтези, которую я хотел бы иметь:

Console.Write("My build message~", Importance.High);
...