【发布时间】:2014-03-06 14:45:59
【问题描述】:
我正在编写一个控制台应用程序以从 tfs 服务器获取解决方案,构建它并在 iis 上发布,但我一直在构建......
我找到了这个代码,它就像一个魅力
public static void BuildProject()
{
string solutionPath = Path.Combine(@"C:\MySolution\Common\Common.csproj");
List<ILogger> loggers = new List<ILogger>();
loggers.Add(new ConsoleLogger());
var projectCollection = new ProjectCollection();
projectCollection.RegisterLoggers(loggers);
var project = projectCollection.LoadProject(solutionPath);
try
{
project.Build();
}
finally
{
projectCollection.UnregisterAllLoggers();
}
}
但我的解决方案非常大,并且包含多个相互依赖的项目(例如,项目 A 引用了项目 B)
如何获得正确的顺序来构建每个项目? 有没有办法从 .sln 文件构建整个解决方案?
【问题讨论】:
-
如果他们都在同一个解决方案中,你为什么要链接到彼此的 dll 而不是添加项目引用?
-
我的意思是它们之间是相互联系的,所以我不能在没有之前构建另一个项目的情况下构建一个项目
-
您是否需要编写此 buildrunner 的代码,而不是仅仅调用 MSBuild 来构建您的解决方案?与 TFS PowerShell Cmdlet 一起,您将拥有所需的一切。
-
出于学习原因,我想知道是否有办法从代码中执行此操作...如果没有,我将使用
devenv /build Debug Solution.sln
标签: c# visual-studio-2012 msbuild