1

快速問題

如何將參考正確地添加到一個外部/第三方.NET DLL(這是不GAC一個NuGet包和未),並迫使它被運作爲溶液的一部分(這是在版本控制下)在Visual Studio中?如何在Visual Studio版本控制下的解決方案中引用和發佈外部/第三方.NET DLL?

說來話長

我有一個Visual Studio 2013的解決方案,其中包含了幾個.NET項目。該解決方案受源代碼控制。當然,項目使用的NuGet軟件包有很多。但是其中一個項目需要引用不作爲NuGet包提供的外部/第三方.NET DLL,而不駐留在GAC中。如果我只是在項目中添加一個對該DLL的引用,它現在可以正常工作。但是,當我通過這種修改簽入變更集後,任何獲得最新版本解決方案的人都會遇到構建它的問題,因爲他沒有在他的機器上引用.NET DLL。

回答

1

我看到了兩個可能的解決方案,您的問題

  1. 您可以在TFS中添加DLL。例如,在您的解決方案下創建一個名爲lib的文件夾,並將您的dll放在那裏。然後從該文件夾中引用該dll。當您檢查更改時,請在dll中包含lib文件夾。一旦其他人會得到最新的,他們會得到你的更改和新的DLL。請注意,該解決方案的文件夾中引用的DLL使用相對路徑,所以其他人誰擁有該文件夾,並在解決方案的文件夾中的DLL不需要做別的

  2. 做一個NuGet包與該DLL和主機它在你自己的nuget飼料上。你可以得到一個飼料,並在一臺專用機器上託管它,或者你可以使用網絡共享:)。 Nuget也使用「文件夾來源」。 Nuget Feed只是一個在文件夾存儲庫中的花哨UI。這增加的好處taht你不會有源控制

好運的DLL下

+0

感謝您的兩個選擇!我現在會研究第一個,但是將來會考慮到第二個選項的可能性。如果我在解決方案的文件夾下創建一個文件夾,並在其中複製外部DLL,則源控制模塊不會將所有這些操作都檢測爲對解決方案的未決更改。您是否願意解釋更詳細的內容,如何使源代碼控制檢測包含所需外部.NET DLL的「lib」文件夾的創建? – Deilan 2014-11-23 16:22:52

+1

Unfortunateley visual studio不會自動檢測到掛起的更改,但是這可以通過SourceControl Expolorer輕鬆完成。導航到您的項目/分支/解決方案文件夾,右鍵單擊它並選擇「添加項目到文件夾...」。彈出一個嚮導,向您顯示可用文件夾的列表。選擇你的Lib文件夾,然後點擊。最初TFS將忽略dll,但您可以在Exceuded項目選項卡中找到它們。點擊排除的選項卡,包含它們並完成。然後,該DLL將顯示在您的未決更改中,並可以簽入。 – Andrei 2014-11-24 12:07:38

0

您可以在需要dll的項目中創建一個新文件夾,然後引用該項目中的dll,然後在該dll中進行操作。 當其他用戶將獲得最新的項目/解決方案時,他們將自動獲得此dll,並且他們不會在構建中遇到問題。

0

您可以考慮檢查,在源控制外部DLL爲好。在項目文件夾中創建一個「Externals」文件夾,並在其中放置外部DLL。使用此路徑來引用外部DLL。這應該與其他開發人員一起工作,以及在他們簽出時他們將在csproj中擁有DLL和適當的相對路徑。

相關問題