Tag: microsoft.build

在C#可执行文件中构建.sln

我正在尝试在C#中构建一个.sln。 我有以下代码。 try { Console.WriteLine(“Building Solution…\n”); string projectFileName = Directory.GetCurrentDirectory() + “\\build\\Solution.sln”; ProjectCollection pc = new ProjectCollection(); Dictionary GlobalProperty = new Dictionary(); GlobalProperty.Add(“Configuration”, “Release”); GlobalProperty.Add(“Platform”, “x86”); BuildRequestData BuidlRequest = new BuildRequestData(projectFileName, GlobalProperty, null, new string[] { “Build” }, null); BuildResult buildResult = BuildManager.DefaultBuildManager.Build(new BuildParameters(pc), BuidlRequest); catch (Exception e) { Console.Write(“Error:” + e.Message); Console.ReadLine(); } Console.WriteLine(“Completed […]

EventSourceException:操作系统中没有可用的免费缓冲区

完整的例外文本是: EventSourceException:操作系统没有可用的免费缓冲区(例如事件速率太快)。 由于递归,我称这种方法大约一百万次。 它不会停止,我只是在VS2013的Output Debug windown中获取exception文本。 但它超级慢。 private static IEnumerable RecursiveFindServices(ISymbol sym, Solution sln) { List list = new List(); var callers = SymbolFinder.FindCallersAsync(sym, sln).Result; // this line may cause the EventSourceException (try not to call Async) foreach(var caller in callers) { string name = GetMethodName(caller); if (caller.CallingSymbol.ContainingType.Name.EndsWith(“Test”)) continue; if (recursiveList.Contains(name)) continue; recursiveList.Add(name); if (IsWebservice(caller)) […]

BuildManager使用另一个版本的MSBuild

以下代码尝试使用BuildManager以编程方式构建解决方案: ProjectCollection pc = new ProjectCollection(); pc.DefaultToolsVersion = “12.0”; pc.Loggers.Add(fileLogger); Dictionary globalProperty = new Dictionary(); BuildRequestData buildRequest = new BuildRequestData(solutionName, globalProperty, null, new[] { “Build” }, null); BuildParameters buildParameters = new BuildParameters(pc) { DefaultToolsVersion = “12.0”, OnlyLogCriticalEvents = false, DetailedSummary = true, Loggers = new List { fileLogger }.AsEnumerable() }; var result = BuildManager.DefaultBuildManager.Build(buildParameters, buildRequest); […]