2016-03-04 28 views
2

我們目前不對我們的依賴項使用nuget,寧願採用舊的skool方式,並將它們全部放入libs文件夾並從那裏引用。我知道。所以1990年代。Nuget - 在源代碼控制中存儲軟件包,還是不是?

無論如何,nuget總讓我感覺有點que ... ......你知道,依靠雲和所有這些。因此,我發現自己在主與馬克西曼同意(在這裏看到:http://blog.ploeh.dk/2014/01/29/nuget-package-restore-considered-harmful/)誰說:

就個人而言,我總是禁用該功能,而是檢查在我的庫中的所有包。這永遠不會給我任何問題。

問題是,在版本3中這已經發生變化,您不能在軟件包旁邊存儲軟件包,如下所示:https://oren.codes/2016/02/08/project-json-all-the-things/。檢查它們到源代碼中的哪一種類型。

那麼,我在這裏什麼都不擔心?我應該從Nuget那裏喝酒,還是與Seeman先生一起喝酒,呃謹慎一些?

+0

個人而言,我永遠不會在源代碼管理中存儲包。它們存儲在Nuget中是有原因的,爲什麼你想用特定版本阻止你的git回購?升級時,你的開發人員是否清理本地副本?不。或者至少,不太可能。如果您使用最新的nuget範例,那麼軟件包將自動恢復,如果找不到它們的話。你也可以用'nuget restore xxxx.sln'編織這個命令行選項 – SpaceBison

+0

如果你主要關心的是訪問nuget.org repo(連接),那麼設置一個私人nuget服務器來緩存你需要的包。這可能是一個文件共享或免費的nuget服務器(nuget.org回購是OSS) –

+0

[可以(應該)我把第三方庫在版本控制?](https://stackoverflow.com/questions/ 1710027/can-should-i-put-3rd-party-libraries-in-version-control) – CJBS

回答

4

在源代碼控制中存儲NuGet包是一個真的,真的壞主意。 我不小心做了一次,我最終膨脹了我的源代碼相當大,這是在.NET核心...

從NuGet井深。大多數軟件組件現在都以類似的方式打包(NPM,Bower等)。引用的博客文章已有兩年曆史,.NET世界中的包管理正在迅速發生變化,所以最近我的經驗如下。

  • NuGet包不能從nuget.org刪除。他們可以隱藏, 但如果您的應用程序請求一個隱藏的包,它會像平常一樣下載它 。它永遠不會消失在虛空中。
  • '啓用軟件包恢復'不再會出現問題,因爲它現在是NuGet 2.7+中的默認選項。你別無選擇了。
  • 不再按每個解決方案存儲軟件包,而是每臺機器,這將節省大量的帶寬,並且會減少構建時的初始讀取週期。
  • 如果您使用.NET Core構建一個新項目,那麼您將擁有數十個包,因爲整個BCL將作爲NuGet包提供。你真的想把所有的System. *包檢入到源代碼中嗎?
+2

>「NuGet包不能從nuget中刪除。org。「 - 這是不真實的。'Microsoft.Net.Compilers 2.0.0'包過早發佈,我的一些項目自動更新到它,然後這個包被從NuGet中提取出來,我根本無法構建我的解決方案NuGet抱怨無法下載它,我不得不手動調整我的'packages.config'和'csproj'文件以引用'1.3.2'。請參閱https://github.com/dotnet/roslyn/issues/14591 – Dai

+1

只是說,我們和nuget一起去了,版本3比版本2好得多。我們從來沒有遇到過任何問題,它在解決方案層面非常出色。這是要走的路,介意你,我不要打開自動更新。 – intinit

相關問題