Отладка пользовательской задачи msbuild с помощью msbuild v15.0 - PullRequest
0 голосов
/ 21 ноября 2018

Инструкции Microsoft по включению отладки задач MSBuild больше не работают.Я не могу заставить msbuild /? показать переключатель /debug, и когда я пытаюсь dotnet publish /debug, он жалуется, что /debug не является допустимым переключателем.

Есть ли способ отладки задач MSBuild?

1 Ответ

0 голосов
/ 22 ноября 2018

Функция /debug для msbuild была удалена из общедоступных сборок MSBuild 15, а код для нее позже был полностью удален .

Для "отладки" логики в ваших целях сборкиФайлы / msbuild. Лучше всего создавать двоичные журналы, используя аргумент -bl, и проверять их с помощью MSBuild Structured Log Viewer .Он показывает все входы / выходы для вызова задачи и все шаги, которые происходят во время выполнения Msbuild.

Отладка пользовательских задач (например, кода C #) очень трудна для выполнения.Это будет включать в себя цикл + спящий режим до тех пор, пока Debugger.IsAttached не станет истинным для отладочных сборок (и затем присоединения к процессу в Visual Studio) или вызова Debugger.Launch() (только в .NET Framework, а не .NET Core MSBuild).

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

Вы можете увидеть пример логики отладчика и разделения в PackTask NuGet и его PackTaskLogic class .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...