C# 如何以编程方式使用MSBuild构建DotNet核心项目

C# 如何以编程方式使用MSBuild构建DotNet核心项目,c#,.net-core,build,msbuild,C#,.net Core,Build,Msbuild,我想构建一个.NETCore3.1解决方案,它有一个带有Businesslayer的API项目,还有两个来自C#代码的层。我正在使用BuildManager构建解决方案 string projectFileName = @"D:\SampleUserApplication\SampleUserApplication.sln"; ProjectCollection pc = new ProjectCollection(); Dic

我想构建一个.NETCore3.1解决方案,它有一个带有Businesslayer的API项目,还有两个来自C#代码的层。我正在使用BuildManager构建解决方案

        string projectFileName = @"D:\SampleUserApplication\SampleUserApplication.sln";
        ProjectCollection pc = new ProjectCollection();
        Dictionary<string, string> GlobalProperty = new Dictionary<string, string>();
        GlobalProperty.Add("Configuration", "Release");
        GlobalProperty.Add("Platform", "Any CPU");
        GlobalProperty.Add("OutputPath", solution_name);
        //GlobalProperty.Add("MSBuildExtensionsPath", msbuildRoot);

        BuildParameters bp = new BuildParameters(pc);
        bp.Loggers = new[] {
        new FileLogger
        {
           Verbosity = LoggerVerbosity.Detailed,
           ShowSummary = true,
           SkipProjectStartedText = true
        }
        };

        BuildManager.DefaultBuildManager.BeginBuild(bp);

        BuildRequestData BuildRequest = new BuildRequestData(projectFileName, GlobalProperty, null, new string[] { "Build" }, null);

        BuildSubmission BuildSubmission = BuildManager.DefaultBuildManager.PendBuildRequest(BuildRequest);
        BuildSubmission.Execute();
        BuildManager.DefaultBuildManager.EndBuild();
        if (BuildSubmission.BuildResult.OverallResult == BuildResultCode.Failure)
        {
            //throw new Exception();
        }
最后

        GlobalProperty.Add("MSBuildExtensionsPath", msbuildRoot);

但一切都没有结果。在长时间的谷歌搜索之后,我也没有找到任何解决办法。我希望有人能解决这个问题。

为什么dotnet core cli还不够?
        GlobalProperty.Add("MSBuildExtensionsPath", msbuildRoot);