2012-12-04 43 views
1

我無法讓TFS 2012構建引用另一個團隊項目中的類庫項目的Web應用程序項目。TFS 2012 - 構建一個引用另一個團隊項目中的類庫的Web應用程序項目

這裏的項目怎麼看源代碼控制:

- $/ 
    - TP1 
    - Development 
     - Source 
     - WebAppProject 
    - TP2 
    - Development 
     - Source 
     - ClassLibraryProject1 

我簡化了這個結構的這個例子的目的 - 有在每個團隊項目中的其他解決方案和項目。假設TP2包含旨在供其他項目使用的代碼,而不僅僅是TP1

包含WebAppProject的解決方案還包含ClassLibraryProject1。它是從TP1使用添加現有項目WebAppProject也有一個項目引用ClassLibraryProject1

我正在組建跨越TP1TP2的項目。我創建的構建定義中TP2併成立了以下工作區:

  • $/TP1 /開發生成代理文件夾被設置爲$(SourceDir)\ TP1 \發展
  • $/TP2 /開發生成代理文件夾被設置爲$(SourceDir)

TFS不能建立WebAppProject,錯誤實際上是有意義的......

TFS正在嘗試使用項目引用從0到解析引用到;例如:..\..\..\TP2\Development\Source\ClassLibrary1,但是,構建服務器上顯然不存在該路徑。

有沒有更好的方法來做到這一點?

謝謝!

回答

1

要做到這一點,最好的方法是建立一個工件庫,比如NuGet(在規模複雜的一端),甚至是一個可以訪問的網絡文件夾(非常基本的規模)。

使用單獨的構建作業/過程構建並輸出共享庫到工件存儲庫。

通過工件存儲庫和一些「獲取最新」機制(例如,NuGet get,NuGet; xcopy/robocopy批處理腳本,共享網絡目錄)引用它。

將共享項目直接添加到您的解決方案可能很容易導致一個痛苦的世界,例如,如果有人無意或無意地在解決方案中對共享項目進行更改。

+0

謝謝chamila_c,你能指點我一個使用NuGet作爲工件庫的例子嗎? –

+0

請記住,這不是一個輕量級的做法,但肯定相當健壯 - [設置本地NuGet庫](http://docs.nuget.org/docs/contribute/setting-up-a-本地畫廊) –

相關問題