2013-08-26 231 views
1

我有以下目錄。 struct第三方DLL

$/ 
TeamProj1/ 
    Solution1/ 
     <Solution and files etc> 
    TeamProj2/ 
    Libs/ 
     LibSolution1/ 
     <solution and files etc> 
    External/ 
     ThirdParty.dll 

Solution1具有對LibSolution1的項目引用,並且具有對ThirdParty.dll的程序集引用。

當我通過File-> Open從源代碼管理來重新檢查Solution1時,TFS正確檢出LibSolution1文件,但不檢查第三方DLL。 如果我手動檢查第三方DLL的一切構建。

如何強制TFS檢出正確的第三方dll文件? 我能想到兩種可能的方法,但並不特別喜歡。 1)我可以添加一個libs文件夾到Solution1並在那裏添加dll。然後,在檢出solution1時,該DLL將被檢出。雖然我不喜歡這種方法,因爲除了使用第三方程序集的Solution1之外,還有一些解決方案,並且我只想維護一個文件副本。

2)我可以創建一個「虛擬」ThirdParty項目/解決方案,並將文件添加到該解決方案,然後將該虛擬項目添加到solution1解決方案。然後,當我檢查出solution1時,它會看到這個虛擬項目,並將其與所有相關文件(是第三方dll)一起檢查出來......但這似乎不必要的複雜。

難道我不能指示TFS簡單地檢出所需的文件嗎?

+0

它是正確的,有退房時,您實際上意味着「獲得,最新的」?或者thirdparty.dll需要可寫嗎? – rene

+0

你不能只是打開源代碼管理資源管理器,並在那裏做一個獲取最新?爲什麼這在解決方案資源管理器中不起作用,請參閱http://stackoverflow.com/questions/7203441/tfs-get-latest-version-with-new-files和http://stackoverflow.com/questions/13634401/ is-there-a-way-to-make-get-latest-in-tfs-behave-like-get-specific-version-of- –

+0

@rene:第三方.dll不需要是可寫的。 「最新的」最有可能也會起作用。 – Paragon

回答

2

此解決方案是您的選項1的變體,但不必維護DLL的多個副本。

向Solution1添加一個新文件夾(比如Third_Party_DLL)。右擊CLick文件夾 - >添加現有項目,而不是在這裏物理添加DLL(從保​​存位置創建到這些第三方DLL的鏈接)。現在,在文件夾中添加DLL鏈接後,從該文件夾(Third_party_Dll)添加對項目中DLL的引用。

現在,當您獲得最新的解決方案文件時,它應該也會得到您的DLL。我還沒有爲Dll自己嘗試過,但是爲了維護AssemblyVersion文件的一個副本,並且它運行良好。試着讓我知道。

Add Vs Add Link