1

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

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

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

谢谢你的尽心帮助!

杰森

4

1 回答 1

2

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

首先,解决方案文件只是 MSBuild XML,因此任何可以生成 XML 的东西都可以生成解决方案。有关详细信息,请参阅MSBuild XML 架构

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

也可以看看:

于 2012-09-30T01:57:01.487 回答