2013-05-03 56 views
3

在VS溶液,我有作爲依賴(在packages.config文件)如何防止Nuget自動更新包(小)版本?

  • 一個包A,版本2.0.0這對程序包B版本> = 5.0.0.0依賴性。 A的最新版本是2.1.0,並且具有與2.0.0中相同的依賴關係
  • 包B版本10.0.0.0。最新的版本是10.0.5.2

我想了套餐A更新到2.1.0,所以我嘗試在「包管理器控制檯」命令

update-package A 

。但奇怪的是,Nuget還將包B更新爲10.0.5.2。

有人告訴我,默認情況下,Nuget將更新爲'錯誤修復'版本,但我還沒有找到有關該鏈接的鏈接。

有誰知道如何告訴Nuget不自動更新其他軟件包?包安裝

由於在

有關信息,我使用的NuGet 2.5,所以要根據http://docs.nuget.org/docs/reference/versioning,依賴不再更新。

+0

這些是你自己的內部的NuGet包,或者他們在官方的NuGet庫是否存在?如果是後者,如果你可以指定哪些軟件包以及哪些版本遇到了這個問題,它可能會有所幫助。 – Nailuj 2013-05-06 08:40:53

回答

2

據我所知,這是無法完成的,也是我們創建ProGet Client Tools的主要原因。

你可以通過在packages.config文件中的方括號(例如[10.0.0.0])中指定明確的版本,但當我嘗試它時似乎抓住了錯誤修復版本 - 雖然我沒有'沒有在最新版本上測試過它。

作爲參考,依賴的NuGet版本選擇算法進行了詳細說明如下:http://blog.davidebbo.com/2011/01/nuget-versioning-part-2-core-algorithm.html

+2

與NuGet依賴版本算法的鏈接有點舊,而且隨着NuGet 2.5的發佈(http://docs.nuget.org/docs/release-notes/nuget-2.5#​​Dependencies_are_no_longer_unnecessarily_updated_during_package_installation),事情可能已經發生了變化。尤其要注意的是_Dependencies部分在安裝包的過程中不再被不必要地更新。有關更多詳細信息,請查看相關工作項目(https://nuget.codeplex.com/workitem/1681)和討論主題(https://nuget.codeplex.com/discussions/436712)。 – Nailuj 2013-05-07 07:36:36