C # Создание проекта Visual Studio в консольном приложении - PullRequest
0 голосов
/ 20 апреля 2019

Я пытаюсь построить свой проект Visual Studio SLN в коде.Я вызываю командную строку vs 2017, затем пытаюсь отправить команду Msbuild.Я получаю следующую ошибку:

«[ОШИБКА: parse_cmd.bat] Недопустимый аргумент командной строки:« msbuild ».Аргумент будет проигнорирован.[ОШИБКА: parse_cmd.bat] Недопустимый аргумент командной строки: 'projectName.sln'.Аргумент будет проигнорирован. ”

Ошибка на строке buildInfo.Arguments = "msbuild project.sln";

Process cmd = new Process();
    try
    {
        ProcessStartInfo buildInfo = new ProcessStartInfo();
        buildInfo.CreateNoWindow = false;
        buildInfo.RedirectStandardError = true;
        buildInfo.RedirectStandardOutput = true;
        buildInfo.RedirectStandardInput = true;
        buildInfo.UseShellExecute = false;
        buildInfo.FileName = @"C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\Tools\VsDevCmd.bat";
        buildInfo.WorkingDirectory = @"directoryToProject";
        buildInfo.Arguments = "msbuild project.sln";

        cmd.StartInfo = buildInfo;

        cmd.Start();
        string stderr_str = cmd.StandardError.ReadToEnd();
        string stdout_str = cmd.StandardOutput.ReadToEnd();

        Console.WriteLine(stderr_str);
        Console.WriteLine(stdout_str);

        cmd.WaitForExit();
    }
    catch (Exception e)
    {
        Console.WriteLine(e);
    }
    finally
    {
        cmd.Close();
      Console.WriteLine("Built the project");
    }
}

Я ожидаю, что он создаст проект sln.

1 Ответ

0 голосов
/ 20 апреля 2019

Если все, что вы пытаетесь сделать, это собрать, я бы порекомендовал изменить C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\Tools\VsDevCmd.bat на путь исполняемого файла MSBuild, который ДОЛЖЕН быть чем-то вроде C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin\amd64 И тогда он должен быть собран.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...