MSBuild в Powershell Script - Как узнать, удалось ли построить?
Я пишу сборку script с помощью Powershell. Сценарии выполняют различные операции, такие как получение самого последнего исходного кода из SVN, резервных копий и т.д., И строит решение с помощью MSBuild:
cmd /c C:\WINDOWS\Microsoft.NET\Framework\v3.5\msbuild.exe "C:\Dev\Path\MyProjct.sln" /p:Configuration=Release
После этой команды я хочу выполнить оставшуюся часть script, если компиляция завершилась успешно. Как я могу проверить это?
Проект представляет собой веб-проект, поэтому не так просто проверить вывод, но я бы предположил, что некоторые переменные будут содержать результат компиляции. Кроме того, поскольку я вызываю msbuild с cmd/c, могу ли я получить доступ к этим переменным?
Ответы
Ответ 1
Проверьте значение $LastExitCode
сразу после вызова MSBUILD. Если это 0, то MSBUILD преуспел, иначе он не удался.
Кстати, нет необходимости использовать cmd/c. Просто вызовите MSBUILD.exe напрямую. Мы делаем это в скриптах сборки PowerShell все время.
Ответ 2
Чтобы просто проверить успех/сбой, используйте автоматическую переменную $?
.
PS> help about_Automatic_Variables
$?
Contains the execution status of the last operation. It contains
TRUE if the last operation succeeded and FALSE if it failed.
например:
msbuild
if (! $?) { throw "msbuild failed" }