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

Как определить статус 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)
{
    //
}
4b9b3361

Ответ 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, то ошибки не было".