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

Создание файла решения с помощью msbuild

Я собирался создать файл решения Visual Studio с помощью msbuild. Я использовал следующую команду для построения решения

msbuild.exe SolutionFile.sln /t:Build/p:Configuration=Release;Platform=Win32

Несмотря на то, что сборка начинается в какой-то момент, сборка выглядит висячей и не может двигаться вперед, как показано ниже.

Done Building Project "D:\SolutionPath\ProjectFile10.vcxproj" (default targets).

В файле SolutionFile.sln есть много .proj, которые мне нужно создать.

Мне нужно использовать msbuild.exe, а не devenv.com

4b9b3361

Ответ 1

Там есть способ диагностики того, что происходит внутри msbuild, что может помочь вам разобраться, что происходит здесь. В командной строке задайте переменную среды:

set msbuildemitsolution=1

После запуска msbuild это приведет к созданию файла .metaproj. Этот файл является тем, что msbuild использует внутренне, но затем удаляет. Вы можете прочитать его, чтобы узнать имя фактических целей. Цель Build расширяется, чтобы показать, что она на самом деле вызывает. Затем вы можете попытаться создать отдельные цели с помощью флага /t для msbuild, чтобы выяснить, какая цель вызывает проблему.

Ответ 2

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

Синтаксис командной строки будет выглядеть следующим образом, чтобы сохранить вывод в файл с именем MyProjectOutput.log:

msbuild SolutionFile.sln /t:build /fl /flp:logfile=MyProjectOutput.log;verbosity=diagnostic

Также кажется, что вам нужно пространство после цели /t для создания параметра, переданного в указанной вами команде.

msbuild.exe SolutionFile.sln /t:Build /p:Configuration=Release;Platform=Win32

Кроме того, уверены ли вы, что каждый проект содержит конфигурацию "Release" и "Win32"? Вы можете попробовать запустить только команду ниже и посмотреть, что компилируется. Msbuild автоматически выполнит задание по умолчанию и необходимые конфигурации.

msbuild SolutionFile.sln

Еще один вариант, который вы можете попробовать - просто скомпилировать проект и посмотреть, что производится:

msbuild "D:\SolutionPath\ProjectFile10.vcxproj" /fl /flp:logfile=MyProjectOutput.log;verbosity=diagnostic