Подтвердить что ты не робот

Какие параметры Visual Studio передают MSBuild?

Когда Visual Studio запускает сборку, она запускает MSBuild для выполнения большинства работ. Если вы передадите файл .sln в MSBuild с соответствующими свойствами Configuration и Platform, он будет строить ваше решение аналогично тому, как Visual Studio будет.

msbuild mysolution.sln /p:Configuration=Release /p:Platform="Any CPU"

Однако существуют различия: иногда сборка будет ошибочной через MSBuild, а не через Visual Studio, или наоборот.

Какие параметры Visual Studio переходят в MSBuild, чтобы влиять на процесс? Есть ли способ увидеть параметры, которые он передает, когда выполняется сборка?

4b9b3361

Ответ 1

Visual Studio не выполняет MSBuild.exe, а сам узел сборки (с помощью сборок Microsoft.Build.*) - по крайней мере, это относится к системе Project С# по умолчанию. Другие языки, дополнения, пакеты и т.д. Могут делать это по-другому.

На самом деле, в блогах Microsoft появилась серия сообщений об этом, я пытаюсь найти их и обновить этот ответ.

UPDATE: снова нашел его. Найдите сообщения "MSBuild in Visual Studio" здесь.

Что касается вашего первоначального вопроса, эта страница может помочь вам в дальнейшем. Также вы можете перейти в "Инструменты", "Параметры", "Проекты и решения", "Сборка и запуск" и увеличить объем вывода вывода MSBuild. В "Диагностике" вы должны увидеть все свойства, которые устанавливаются при запуске сборки.

Ответ 2

Во-первых, вы можете запустить msbuild с аргументом /v:diag, чтобы получить регистрацию на уровне диагностики. Это может действительно помочь в выяснении причин сбоя сборки.

В противном случае, да, если вы используете Process Monitor, вы можете отслеживать события запуска процесса, где вы можете увидеть конкретную командную строку, отправленную процесс.

В частности:

  • Монитор рабочего процесса
  • Фильтp > Фильтр...
  • Operation is Process Create "Добавить
  • Operation is Process Start "Добавить
  • OK
  • Запустите сборку через VS и через командную строку msbuild
  • См. аргументы командной строки в столбце Detail