Msbuild не поддерживает многопоточную сборку решений
У меня есть ситуация, чтобы построить несколько решений с помощью MSBUILD в многопоточности, но во время сборки всегда несколько решений терпят неудачу. Я стараюсь строить каждое решение одно за другим , оно работает идеально. но у меня есть попытка построить 5 решений с использованием многопоточности, немногие сборки терпят неудачу. Когда я исследовал файл журнала сборки как успешной сборки, так и неудачной сборки, мне показалось, что MSBUILD конфликтует с каждым процессом сборки. Для справки я приложил два текстовых файла журнала сборки.
Начало сборки для отправки ID 11468
Начало сборки для отправки ID 11468
string SolutionPath = System.IO.Directory.GetFiles(SolutionFolder, "*.sln").FirstOrDefault(); WriteLog("A", TimeStartExecute.ElapsedMilliseconds.ToString(), string.Format("Build solution name {0}", SolutionPath)); ProjectCollection pc = new ProjectCollection(); Dictionary GlobalProperty = new Dictionary(); GlobalProperty.Add("Configuration", appConfiguration); GlobalProperty.Add("Platform", appPlatform); //GlobalProperty.Add("Platform", "x86"); GlobalProperty.Add("OutputPath", appOutputPath); GlobalProperty.Add("VisualStudioVersion", appVSVersion); GlobalProperty.Add("BuildInParallel", "true"); GlobalProperty.Add("maxcpucount", "2"); BuildParameters bp = new BuildParameters(pc); if (appBuildLogger.Equals("true")) { bp.Loggers = new[] { new FileLogger { Verbosity = LoggerVerbosity.Detailed, ShowSummary = true, SkipProjectStartedText = true, Parameters=@"Logfile="+SolutionFolder+"\\build.log" } }; } using (BuildManager objBuildManager = new BuildManager()) { BuildRequestData BuildRequest = new BuildRequestData(SolutionPath, GlobalProperty, "14.0", new string[] { "Build" }, null, BuildRequestDataFlags.ReplaceExistingProjectInstance); BuildResult buildResult = objBuildManager.Build(bp, BuildRequest) if (buildResult.OverallResult == BuildResultCode.Success) { buildPath = Convert.ToString(buildResult.ResultsByTarget.FirstOrDefault(x => x.Key == "Build").Value.Items[0]); } }
Что я уже пробовал:
После расследования обнаружена проблема в процессе сборки по журналу сборки..
Журнал успешной сборки https://github.com/Microsoft/msbuild/files/1115978/11468.success.txt
неспособность построить отчет https://github.com/Microsoft/msbuild/files/1115979/11468.failed.txt