Как определить статус msbuild из командной строки или С#
Я пишу приложение для проверки, сборки и развертывания в С# и должен знать, как лучше всего определить, удалось ли мой вызов msbuild или нет. Я попытался использовать код ошибки из процесса, но я не это, это всегда точно.
Есть ли способ с помощью кода ниже, что я могу проверить, успешно ли установлено приложение msbuild.exe?
Спасибо
Грант.
try
{
Process msbProcess = new Process();
msbProcess.StartInfo.FileName = this.MSBuildPath;
msbProcess.StartInfo.Arguments = msbArguments;
msbProcess.Start();
msbProcess.WaitForExit();
if (msbProcess.ExitCode != 0)
{
//
}
else
{
//
}
msbProcess.Close();
}
catch (Exception ex)
{
//
}
Ответы
Ответ 1
Насколько мне удалось определить, MSBuild возвращает код выходa > 0, когда он сталкивается с ошибкой. Если он не встречает никаких ошибок, он возвращает код выхода 0. Я никогда не видел его выхода с кодом < 0.
Я использую его в пакетном файле:
msbuild <args>
if errorlevel 1 goto errorDone
В течение четырех лет использования этого метода у меня никогда не было причин сомневаться в правильности этого подхода.
Несколько вопросов на форумах MSDN задают одно и то же. Например: http://social.msdn.microsoft.com/forums/en-US/msbuild/thread/a4ae6b2b-9b1f-4e59-86b4-370f44d73a85. Стандартный ответ, по сути, "если уровень ошибок равен 0, то ошибки не было".