2012-09-30 101 views
1

我正在为我的公司编写一个实用程序,它将以一键式方式批量生成大量解决方案。共有8个解决方案,每个解决方案平均有20个项目。该实用程序需要能够捕获每个解决方案的构建日志和错误总数,就像在命令行中构建时一样。我知道我这是命令来实现这一目标以编程方式使用MSBuild构建解决方案

msbuild mysolution.sln /t:build /verbosity:minimal /maxcpucount:xx 

不过,我想利用Microsoft.Build.Evaluation API的如果可能的。我知道Project对象可以加载一个项目,但无论如何要构建一个完整的解决方案吗?我打算构建此实用程序以利用系统上的所有cpus /内核并同时构建多个解决方案。我已经查看了Microsoft.Build.Evaluation的MSDN页面,但文档仍然很糟糕。

感谢您提供的任何帮助!

Jason

回答

2

您不需要Visual Studio解决方案文件(sln)来构建多个项目。您可能知道,Visual Studio项目文件只是MSBuild XML文件,它们可能会落入其他项目文件。因此,根据需要构建一个构建其他项目的项目文件。这可以通过两种方式之一完成。

首先,解决方案文件只是MSBuild XML,所以任何可以生成XML的东西都可以生成解决方案。有关更多信息,请参阅MSBuild XML Schema

其次,使用构造函数以编程方式构造Microsoft.Build.Evaluation.Project,构造函数采用Microsoft.Build.Construction.ProjectRootElement实例,然后调用Project.Build()ProjectRootElement有添加常见元素类型的方法,例如CreateTaskElement(),CreatePropertyElement()CreateTargetElement()

参见:

相关问题