原文转自:http://blog.miniasp.com/post/2013/06/11/Downgrading-jQuery-version-with-NuGet.aspx
我们在Visual Studio 2012 里面会使用NuGet 管理员管理那些常用的开发函式库,例如jQuery、Json.NET、 EntityFramework、ELMAH、… 等等。各位可能也了解到,目前jQuery 最新版为2.0.2 版,这个最新版基本上仅支援IE9 以上浏览器( IE8 以下不支援),因此大部分人应该都不会选择安装最新版的jQu??ery,但是在使用NuGet 安装或更新套件的过程中,却有可能不小心将jQuery 套件自动升级到最新版,导致网站发生许多相容性的问题。今天这篇文章主要就是说明如何手动将jQuery 降级到1.x 的版本。注: 此方法适用于任何NuGet 套件,所以若要指定降级版本,都可以参考这篇文章。
前阵子,我就有同事因为专案中因为需要安装某个jQuery 相关套件,安装的过程中竟然顺便把jQuery 给升级到2.x 的版本,他自己却完全没有意识到jQuery 被升级了,被卡了两个多小时才找我求救,虽然给了要降版的建议,但透过管理NuGet 套件的GUI 介面,却不到将现有套件降版的功能。
若要强制解除安装jQuery,也会因为相依性等问题导致无法解除安装:
如果你真的要将特定NuGet 套件降版安装,主要有3 个步骤:
- 开启套件管理器主控台
- 强制移除特定 NuGet 套件
- 指定安装特定 NuGet 套件的特定版本
分别说明如下:
1. 开启套件管理器主控台
从主选单选取: 检视/ 其他视窗/ 套件管理器主控台
2. 强制移除特定 NuGet 套件
要移除特定套件,必须先找出该套件的识别码( ID ),你可以透过以下步骤查询出来:
在套件管理器主控台输入以下指令,其中jQuery 是套件识别码,而-Force 则是强制移除的意思:
Uninstall-Package jQuery -Force
3. 指定安装特定 NuGet 套件的特定版本
在套件管理器主控台输入以下指令,其中jQuery 是套件识别码,而-Version 则是指定套件版本:
Install-Package jQuery -Version 1.8.3
註:如果你的 Visual Studio 方案中有多個專案,安裝時須注意是否安裝到正確的專案,如下紅框處:
如果你想查询该套件到底有多少版号,你可以直接连到NuGet Gallery 网站,查询该套件曾经发布过那些版本,其网址格式如下:
http://nuget.org/packages/套件識別碼/
例如:
http://nuget.org/packages/jQuery/
※ 补充说明 ※
如果你专案中的jQuery 套件是jQuery 1.8.3,而试图安装了一个套件会相依于jQuery 更新版本的情况( 例如Bootstrap 套件会要求安装jQuery 1.9.1 以上版本),那么在安装套件的过程中, NuGet 会自动将你现有的jQuery 1.8.3 升级到最新版,也就会造成本篇文章所提及的状况。