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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#在控制台应用程序中构建Visual Studio项目相关的知识,希望对你有一定的参考价值。

我正在尝试用代码构建我的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 Studio2017ProfessionalCommon7ToolsVsDevCmd.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项目。

答案

如果您要做的就是构建,我建议将C:Program Files (x86)Microsoft Visual Studio2017ProfessionalCommon7ToolsVsDevCmd.bat更改为MSBuild可执行文件的路径,它应该像C:Program Files (x86)Microsoft Visual Studio2017ProfessionalMSBuild15.0Binamd64那样然后它应该构建。

以上是关于C#在控制台应用程序中构建Visual Studio项目的主要内容,如果未能解决你的问题,请参考以下文章

在 Visual Studio 中构建 C++ 项目不会创建任何文件

如何在 Visual Studio 2010 的 C++ googletest 项目中设置代码覆盖率

使用Visual Studio + CMake 构建Qt程序弹出Console控制台

Visual Studio 2010 Express 限制

visual studio 2010问题修复

无法在 Windows XP 上运行 Visual Studio 2012 程序