到現在爲止我們的團隊與VSS的工作,我們在過程當中搬到TFS2010和VS2010。 我們的大部分代碼都是C++,我們使用了很多第三方庫,如Boost,OpenCV,OpenSSL等。 根據我閱讀的最佳實踐,我正在考慮一些選項來處理我們的多個解決方案和項目中的第三方標題和庫。引用第三方庫和頭建立代理
我爲所有第三方庫創建獨立的TFS項目,併爲每個庫和每個版本存儲源/包含/輸出。例如:
Dependencies\ -> Boost\ ->boost_ver1\* ->boost_ver2\* -> OpenSSL\ ->openssl-ver1\* ->openssl-ver2\**
我TFS源代碼樹的樣子:
$\ -> Dependencies\ -> TeamProject1\ -> TeamProject2\ -> TeamProject3\
我們TeamProject(S)可能包含不同級別的文件夾樹多種解決方案。
我準備每個團隊項目一個
dependencies.props
文件給團隊項目導入到的所有項目。該.props文件將相關的第三方軟件包添加到$(IncludePath)
和$(LibraryPath)
。爲了做到這一點,我假定依賴項目被映射到由每個用戶每臺機器的全局環境變量定義的文件夾。
我有一個關於這種方法的幾個問題:
我不知道如何使它在生成代理工作,因爲我不能在工作區映射選項卡中指定環境變量的構建定義。我知道BuildDirectory var和SourceDir var是每個構建更改的。
如何確保我獲得最新相關第三方的依賴關係之前,我開始構建任何TeamProject解決方案。
這是一個「好」的做法呢?
如果你能等這麼久,NuGet應該在未來幾個月內獲得原生C++支持。不過,我想指出的是,除非您有充分的理由,否則通常建議不要將項目拆分到他們自己的TFS團隊項目中(http://blog.hinshelwood.com/one-team-project/) – Betty
Betty,I寧願使用多個團隊項目,因爲我們有一個非常不同的調度發佈時間和許多構建來處理。 – Lub