2011-11-03 82 views
0

我們的解決方案駐留在TFS 2010上,現在有39個項目。一個Windows應用程序項目和38個類庫。到目前爲止,我們的Windows應用程序項目擁有CopyLocal = true的所有類庫的所有引用。這種方式構建與我們的.exe一起生成一個包含所有dll的文件夾。重新配置許多項目的解決方案

此設置不再適用於我們,我們需要從Windows應用程序中刪除所有引用。項目(DLL無論如何都使用反射加載)。如何配置構建像以前一樣工作,但在Windows應用程序中沒有引用。項目?

回答

1

您需要修改38個庫項目的構建。有幾個選項:

你可以改變每個項目,以使$(OutputPath)屬性指向正確的投遞文件夾,這樣的事情:

<PropertyGroup> 
    <OutputPath>..\Application\bin\$(Configuration)</OutputPath> 
</PropertyGroup> 

如果我這樣做,我會修改所有39個屬性以使用定義該屬性的通用導入,並將它們全部構建到一個放置文件夾中。然後,只需將應用程序項目更改爲指向drop文件夾進行調試即可。

在構建後部署步驟中,您也可以使用導線(使用通用導入),以便在構建每個項目時將構建的組件複製到放置文件夾。

+0

Thnaks。我會嘗試你的建議。 – Nezreli

+0

我有一個意想不到的問題。解決方案按預期構建,所以主要問題已解決,但現在即使使用F5 Debug選項沒有任何更改,VS2010也能重建項目!要開始調試應用程序,我需要等待幾分鐘才能完成不必要的構建?! – Nezreli

+1

我見過這樣的事情,當增量構建信息獲取不正常的了。通過擺脫所有'obj'和'bin'文件夾,關閉並重新啓動VS,嘗試做一個徹底的手動「清潔」,然後重試。如果不工作,你構建輸出記錄更改爲「診斷」,並建立,然後輸出窗口複製到一個文本文件,然後搜索,顯示爲什麼項目正在重建的線索「構建項目」的通知。 –

1

當您通過的MSBuild建立在命令行的項目,你可以這樣做以下:

msbuild yoursolution.sln /p:Configuration=Debug /p:OutDir=c:\your-specific-location 

OUTDIR是OutputPath在每個項目中創建的變量,因此覆蓋在這裏將在全球覆蓋它,確保所有內置項目的輸出都會被複制到這個位置。

相關問題