2013-03-20 46 views
4

我有許多Visual Studio解決方案要構建。Microsoft.Build.BuildEngine可以多線程

是否可以使用Microsoft.Build.BuildEngine一次構建多個解決方案(即通過多線程)?

我知道它有一些STAThread要求,雖然我從來沒有完全理解這對我的程序意味着什麼。

編輯:讓我澄清。我知道MSBuild可以在解決方案中執行多線程構建項目。我的問題是Microsoft.Build.BuildEngine.Engine是否可以被不同的線程用來構建不同的解決方案/項目。

我試着在不同的線程中創建單獨的引擎,並沒有工作。當我嘗試使用一個引擎時,在一個線程中,它工作。

.NET庫可以一次構建多個項目/解決方案嗎?

+0

您使用的是TFS嗎? TFS Build可以配置爲在一個或多個構建服務器上一次構建多個構建。 – 2013-03-20 02:23:51

+0

我相信BuildEngine使用MSBuild。但是,不,我沒有使用TFS。 – 2013-03-20 02:46:33

+0

可以從TFS2010/2012構建中調用MSBUILD,並且可以傳遞參數以使其使用多個線程。 – 2013-03-20 03:35:24

回答

0

這取決於你在做什麼。是的,你可以做多個並行項目構建(在VS中進入工具 - >選項 - >項目和解決方案 - >構建和運行)。如果你正在運行MSBuild,那麼你可以使用/ m [:number]命令。至於已棄用的BuildEngine,以支持Microsoft.Build.Construction/Microsoft.Build.Evaluation/Microsoft.Build.Execution,我相信BuildParameters.MaxNodeCount是設置要使用的線程數量。雖然我個人建議只運行msbuild本身或使用IDE,但它更簡單。

+0

在.NET 2.0中,它不被棄用,這就是我正在使用的。我應該提到這一點。 而使用IDE不是更容易的自動構建。用C#手動創建一個進程並不像使用爲此目的而創建的庫那麼優雅。 – 2013-03-20 04:49:27

相關問題