2012-09-30 143 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()

參見:

相關問題