簡體   English   中英

TFS 和引用的 DLL

[英]TFS and referenced DLLs

我們正在使用 TFS 和 VS 2010。

我一直在研究一個使用 TFS 作為源代碼控制的項目。 我下載了很多 dll(例如 log4net)並在我的項目中引用。

當一個新程序員連接到 TFS 並使我的項目脫離源代碼控制時,它無法構建,因為它說它缺少所有這些引用的 dll。

我在這里做錯了什么? 如何在源代碼管理中包含那些引用的 DLL。 在引用它們之前,我是否需要將所有這些 dll 添加到我的項目中? 當我引用它們時,我只是瀏覽到它們在我的文件系統中的位置。

我發現 3rd 方 DLL 的最佳實踐是在 sln/proj 文件結構中創建一個“Library”文件夾,並將所有必要的 DLL 復制到此本地文件夾中以供參考。 您還需要確保將這些 DLL 簽入源代碼管理。 這樣,參與項目的每個人都會獲得所有 DLL 的完全相同版本,並且引用路徑完全相同。

在任意下載或安裝位置引用第 3 方庫會出現問題,因為它需要所有開發人員為所有 DLL 維護相同的下載結構。 此外,如果每個人都在項目結構之外引用 DLL,則很難保證每個人都使用相同的版本。

另一種選擇是讓每個人都將 DLL 安裝到 GAC 中,但這也可能是一個真正的痛苦,尤其是在版本管理和部署方面。

我在我的項目文件夾中創建了一個“ThirdPartyDLL”文件夾,我將所有額外的 DLL 復制到其中。 然后我進入源資源管理器並將這些 DLL 添加到團隊基礎服務器中,這樣我就可以確定我正在為我的應用程序的特定版本使用正確版本的 DLLS(因此其他人都在與我完全相同的頁面上) )。

查看-其他窗口-源控制資源管理器右鍵單擊項目文件夾-將項目添加到文件夾

您將無法選擇包含 DLL 的特定文件夾,但您可以選擇該文件夾中的單個 DLL 文件。 然后您將看到“ThirdPartyDLL”文件夾出現在該窗口中。

完成此操作后,這些 dll 位於團隊基礎源代碼管理中。 每當開發人員簽入時,他們將獲得最新版本的 DLL。

不要忘記刪除應用程序中的舊引用並將它們更改為您的第三方dll 文件夾。

我曾經將 DLL 復制到 bin 文件夾中,但我遇到的問題是 DLL 升級時。 最初,當我的項目很小時,這沒什么大不了的。 現在我創建了多個 DLL 和應用程序,在我的項目之外維護 DLL 的一致版本變得非常困難。 我最好的例子是我購買的許可 dll。 升級后,所有應用程序和庫都需要在同一版本上。 如果我忘記了一個,那么我就會遇到奇怪的問題或者應用程序停止工作。 現在我將所有內容都放在一個文件夾中,我進行了一次更改並升級了所有內容。

希望這可以幫助。

安迪的建議很好,我過去曾使用過。 在我目前的工作中,我們在網絡共享上有一個“參考”文件夾,供我們所有人構建。 不過,我們這里的網絡非常快,所有開發人員都在一個辦公室。 如果您有很多遠程開發人員或網絡速度較慢,則此解決方案將無法正常工作。

我已經嘗試了各種方法來解決這個問題,並決定將所需的 dll 放在 bin 文件夾中,並確保它們包含在項目中以進行源代碼控制。 我聽說有人說這可能不是一個好主意,但沒有人為此提供充分的理由,而且對我來說效果很好。

我的第二個選擇是在網絡共享上開辟一些空間並在那里組織各種 3rd 方 dll。 您可以將您的文件放在帶有版本號的文件夾中,以保持一切正常,只要每個人都使用正常的網絡路徑作為參考,每個人都應該可以訪問他們需要的一切。

在項目中添加一個單獨的文件夾也是可行的,但看起來很麻煩,因為您最終會得到不希望包含在您的版本中的額外文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM