C#在控制台应用程序中构建Visual Studio项目

时间:2019-04-19 21:09:19

标签: c# visual-studio

我正在尝试用代码构建Visual Studio sln项目。我正在致电vs 2017命令提示符,然后尝试发送命令Msbuild。我收到以下错误:

“ [ERROR:parse_cmd.bat]无效的命令行参数:“ msbuild”。参数将被忽略。 [ERROR: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 :(得分:0)

如果您只想构建,我建议将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,然后再构建。