我可以让Nuget保留在jQuery 1.9.x / 1.xpath上(而不是升级到2.x)吗?

像大多数人一样,我使用jQuery Nuget包来保持最新。

但是,随着jQuery 2.0的发布,我现在提示将jQuery 1.9.1升级到2.0。 在这个时候,我有足够的访问者浏览我的网站,使用古老版本的浏览器,我宁愿使用1.9.x和jQuery Migrate 。

无论如何,当检查包(jQuery或其他)的更新时,告诉Nuget坚持特定的版本(1.9.x)?

我正在使用Visual Studio 2010/2012扩展,但是如果我需要使用VS中的命令行界面来解决这个问题,我当然会。

注意:在我看来,有一点是他们搞砸了更新。 由于jQuery 1.9.x和2.0.x / 2.x是相当不同的,所以他们似乎应该创build一个jQuery 2(.0.x | .x)包。

当然,那些真正想要更新到2.x的人们将不得不知道它,并切换他们想要安装的软件包。 但鉴于它包含突破性的变化,也许这样更好?

在我看来,这是包装作者的一部分的错误。 取消对多个浏览器的支持的更新应该被制作成单独的版本2 nuget包,并相应地进行广告宣传,即有重要的免责声明。 1.9图书馆不是遗产,将来会得到进一步的更新。 我已经与包作者联系过,如果我收到回复,我会写更多。

在此期间,您可以通过在packages.config使用以下语法来限制软件包的版本:

 <package id="jQuery" version="1.9.1" allowedVersions="[1.9.1]" /> 

这里有更多关于版本约束的信息:

http://docs.nuget.org/docs/reference/Versioning

更改configuration后,更新不应将您的jQuery包升级到2.0版本。 UI包pipe理器在过去一直存在不尊重allowedVersions属性( https://nuget.codeplex.com/workitem/1891 )的问题,因此如果遇到此问题,可能必须使用命令行。

但是,这些都不能解决1.9分支得到更新后会发生什么问题,因为软件包提要现在将在2.0+轨道上。 我假设你将不得不切换到专门编写的新的nuget包来支持'legacy'1.x版本,或者每次手动复制脚本。

无论如何,当我了解更多时,我会更新这个。

编辑:

软件包作者指出,未来将支持1.x 2.xpath,即包馈送将包含并行版本,而不是被拆分。 就我所见,解决scheme是在包configuration级别使用版本约束来防止更新到2.x版本,例如:

 <package id="jQuery" version="1.9.1" allowedVersions="[1.9.1,2)" /> 

(在allowedVersions指定最小和最大版本应该允许更新,而不必担心切换到2.x版本。顺便说一句,右括号看起来很奇怪,但是正确的 – 这意味着“小于版本2”。

如何指定版本?

PM> Install-Package jQuery -Version 1.9.1

参考资料: http : //nuget.org/packages/jQuery/1.9.1

Nuget现在有一个jquery1包 ,只跟踪1.x分支,所以你应该能够换出这个核心的jQuery包。

我将@TeYoU的两个解决scheme结合在一起

首先我从软件包pipe理器控制台安装软件包:

工具菜单 – >库软件包pipe理器 – >软件包pipe理器控制台

 PM> Install-Package jQuery -Version 1.9.1 

然后我编辑了packages.config作为@Dave R.说:

 <package id="jQuery" version="1.9.1" allowedVersions="[1.9.1,2)" /> 

然后我更新到当前的版本,目前1.10.2使用Nugetpipe理器,它的工作就像一个魅力。