我正在为我的公司编写一个实用程序,它将以一键式方式批量构建多个解决方案。总共有大约8个解决方案,每个解决方案平均有20个项目。该实用程序需要能够捕获构建日志和每个解决方案的错误总数,就像在命令行构建时一样。我知道我这是完成那个的命令
msbuild mysolution.sln /t:build /verbosity:minimal /maxcpucount:xx
但是,如果可能的话,我想使用Microsoft.Build.Evaluation API。我知道Project对象可以加载一个项目,但无论如何都要构建一个完整的解决方案?我打算构建这个实用程序以利用系统上的所有cpus / cores并同时构建多个解决方案。我查看了Microsoft.Build.Evaluation的MSDN页面,虽然文档(仍然)非常糟糕。
感谢您提供的任何帮助!
杰森
答案 0 :(得分: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()
。
另见: