NuGet 2.0 (.NET软件包管理器) 发布了-现在升级吧
原文:https://blogs.msdn.microsoft.com/scott_hanselman/2012/07/10/nuget-2-0-net/
[原文发表地址] NuGet 2.0 (.NET Package Manager) released - GO UPGRADE NOW and here's why
[原文发表时间] 2012-06-27 12:51
在我们开始之前,让我们前往http://nuget.org ,然后点击安装 NuGet。其实,只需在这里做。我将要等会儿。

它是一个 2.5兆VSIX 文件,并会采取一分钟来安装。它将适用于 Visual Studio 2010 SP1,以及 Visual Studio 2012 RC。如果您同时安装了这两个版本的话,NuGet 将提示您在所有这两个版本中安装它,如果你愿意的话。
你可能会遇到的奇怪问题
如果您是早期吃螃蟹的人,而且正在测试 Visual Studio 2012 RC的话,首先,谢谢。如果您在VS 2012 RC中看到一个对话框, “Configuring Extensions ",而它似乎永远在那儿,在RTM中,我们修复了一个bug,该bug在最近的NuGet 更新中越来越频繁地出现了。当一个用户在 RC 版本中更新扩展时,该 bug 会间歇性地出现。
在 Visual Studio 2012 RC中,在" Configuring Extensions "挂起的解决方法
- 关闭所有的VS实例
 - 检查 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\ExtensionManager\PendingDeletions 的内容
 - 删除每个条目列出的文件夹
 - 删除 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\ExtensionManager\PendingDeletions
 
99.9%的升级或安装将正常工作。如果你看到任何其它问题,请以管理员身份运行 Visual Studio,转到工具 |扩展管理器,然后卸载 NuGet,然后重新安装.
最常见的安装问题是与 Visual Studio 2010 SP1 的证书不匹配。不幸的是这并不是 NuGet 的 bug,但是你可以在这里获取Visual Studio 修复程序来一劳永逸地解决它http://bit.ly/vsixcertfix。我希望某一天,该修复程序会出现在Windows Update中。无论是安装该修补程序还是以管理员身份卸载/重新安装都可以修复 NuGet 的该问题。
已修复的问题和新功能
这里是一个针对在 NuGet 2.0 版本中被修复的80个问题的完整列表的查询。NuGet 已经超过 14 万个软件包下载,并在库中有超过 6,000 个唯一的软件包。你可以随时在http://stats.nuget.org看到更新过的统计信息.
最好的修复,而且是我亲自推动的是这一问题: NuGet PowerShell Tab Completion是通过慢速连接的,速度缓慢。如果您是使用慢速集合 (我指的是,New Zealand) 或只想提升速度,这是升级 NuGet的足够理由。
之前,键入Install-Package jQuery.[TAB] 会导致 HTTP 调用Odata, 那将返回比需要的更多数据。我一直在为那些不在美国 35 兆连接的家伙争取。通常是因为我在那边通过 3g 拉取数据。
在NuGet 2.0中键入Install-Package Jquery.[TAB] ,它会制作一个像这样的快速 JSON 调用:
GET /api/v2/package-ids?partialId=jQuery. HTTP/1.0
在此例中,它会返回JSON 的603 个字节,正如它应该返回的。它是快速的。
1: ["jQuery.Ajax.Unobtrusive",
2: "jQuery.ba-throttle-debounce",
3: ...,
4: "jQuery.LiveQuery",
5: "jQuery.MaskedInput",
6: "jQuery.Meow"]
你会获得一个不错的针对软件包的Intellisense。
![]()
新功能
NuGet 2.0 不仅速度更快,而且还有一些新的功能,比如通过目标框架对依赖项进行分组。您可以更改您的依赖。那样一个软件包可以服务于.NET 2 和.NET 4,但每个目标框架都需要不同的软件包。下面是一个示例:
1: <dependencies>
2: <group>
3: <dependency id="RouteMagic" version="1.1.0" />
4: </group>
5:
6: <group targetFramework="net40">
7: <dependency id="jQuery" />
8: <dependency id="WebActivator" />
9: </group>
10:
11: <group targetFramework="sl30">
12: </group>
13: </dependencies>
来自文档:
请注意一个组可以包含零依赖关系。在上面的示例中,如果该软件包被安装到一个指向 Silverlight 3.0 或更高版本的项目中,那么没有依赖项被安装。如果该软件包被安装到一个指向.NET 4.0 或更高版本的项目中,就有两个依赖项,jQuery 和 WebActivator,将被安装。如果该软件包被安装到一个指向这2 个框架的早期版本或任何其他框架的项目中,那么RouteMagic 1.1.0将被安装。组之间没有继承。如果项目的目标框架与一个组的targetFramework属性相匹配的话,只有该组中的依赖项才被安装。
更好的事情是,您现在可以根据目标框架对PowerShell 脚本,以及内容文件来进行分组。具体可运行的脚本取决于您的版本和可以包含具体的内容文件。这将使用您对依赖项使用的相同的目录层次结构,现在它适用于 /content 和 /tools。
打开"生成期间允许 NuGet 下载缺失的软件包"让你的生活更轻松
最后,应注意,您必须至少一次显式地给予"还原软件包"以确定,以便让 NuGet 为你获取一堆依赖项。通常你想要编译一个大项目,或许该项目包括一个packages.config,但不是软件包本身 (例如,您不希望将二进制的软件包签入到源代码管理中) 因此,在生成时,NuGet 将恢复缺失的软件包。你只需要做一次以满足要求.
![]()
偷窥一些UI 功能 (感谢 Mads !)
你知道Visual Studio2012中新的 Ctrl-Q"搜索所有命令"功能吗?我在Mads 的计算机上看到一个NuGet的每日生成的改进,它不仅搜索 Visual Studio 本地的命令,而且也搜索 Visual Studio库和 NuGet 软件包。如果你喜欢此功能,请留下评论,我会对Mads施加压力的。或者,你会。;)
![]()
大型软件包重命名
我们已经更改了一堆软件包的名称 (并转发了旧名称), 所以逻辑上至少更多倾向Microsoft。例如,这里是 Microsoft.AspNet … …
![]()
此 RC 版本中,所有参与在 ASP.NET 产品中的 NuGet 软件包都被重命名了。我们内部称它为"大型软件包重命名2012。"这里是旧的软件包名称与新的软件包名称之间的映射。在此列表中,旧的名称引用了产品的先前版本,包括与 VS 11 beta 版附带推出的Beta版。
| 
 旧的软件包  | 
 新的软件包  | 
| 
 AspNetMvc  | 
 Microsoft.AspNet.Mvc  | 
| 
 AspNetRazor.Core  | 
 Microsoft.AspNet.Razor  | 
| 
 AspNetWebApi  | 
 Microsoft.AspNet.WebApi  | 
| 
 AspNetWebApi.Core  | 
 Microsoft.AspNet.WebApi.Core  | 
| 
 AspNetWebApi.SelfHost  | 
 Microsoft.AspNet.WebApi.SelfHost  | 
| 
 AspNetWebPages.Core  | 
 Microsoft.AspNet.WebPages  | 
| 
 AspNetWebPages  | 
 Microsoft.AspNet.WebPages.Administration  | 
| 
 jQuery.Ajax.Unobtrusive  | 
 Microsoft.jQuery.Unobtrusive.Ajax  | 
| 
 jQuery.Validation.Unobtrusive  | 
 Microsoft.jQuery.Unobtrusive.Validation  | 
| 
 Microsoft.Web.Optimization  | 
 Microsoft.AspNet.Web.Optimization  | 
| 
 SqlServerCompact  | 
 Microsoft.SqlServer.Compact  | 
| 
 System.Net.Http  | 
 Microsoft.Net.Http  | 
| 
 System.Net.Http.Formatting  | 
 Microsoft.AspNet.WebApi.Client  | 
| 
 System.Web.Providers  | 
 Microsoft.AspNet.Providers  | 
| 
 System.Web.Providers.Core  | 
 Microsoft.AspNet.Providers.Core  | 
| 
 System.Web.Providers.LocalDb  | 
 Microsoft.AspNet.Providers.LocalDb  | 
| 
 System.Web.Providers.SqlCE  | 
 Microsoft.AspNet.Providers.SqlCE  | 
我们希望其它公司 (和Microsoft内部的其他团队) 将遵循相同的标准命名结构
NuGet 2.0 (.NET软件包管理器) 发布了-现在升级吧的更多相关文章
- Gitea v1.17.0 正式发布 | 集成软件包管理器、容器镜像仓库
		
我们自豪地宣布 Gitea v1.17.0 发布了.本次发布带来了诸多新特性和累积的更新,我们强烈建议用户在更新到最新版本之前仔细阅读发行注记. 在 1.17.0 版本的开发中我们一共合并了 645 ...
 - BZOJ 4196: [Noi2015]软件包管理器 [树链剖分 DFS序]
		
4196: [Noi2015]软件包管理器 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 1352 Solved: 780[Submit][Stat ...
 - [BZOJ4196][NOI2015]软件包管理器
		
4196: [Noi2015]软件包管理器 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 1040 Solved: 603[Submit][Stat ...
 - BZOJ4196 软件包管理器
		
Description Linux用户和OSX用户一定对软件包管理器不会陌生. 通过软件包管理器,你可以通过一行命令安装某一个软件包,然后软件包管理器会帮助你从软件源下载软件包,同时自动解决所有的依赖 ...
 - 【NOI2015】软件包管理器
		
NOI难得的水题,话说还是T2诶……又学到了线段树的一种新的魔性使用 看sxysxy大神的代码才写出来的,sxysxy_orz 原题: Linux用户和OSX用户一定对软件包管理器不会陌生.通过软件包 ...
 - Chocolatey:Windows软件包管理器
		
Chocolatey 2016-08-03 https://chocolatey.org/ Chocolatey是一个Windows软件包管理器,就像Nuget或者npm,或者说类似Linux上的ap ...
 - BZOJ_4196_[NOI2015]_软件包管理器_(树链剖分)
		
描述 http://www.lydsy.com/JudgeOnline/problem.php?id=4196 给出一棵树,树上点权为0或1.u权值为1的条件是从根节点到u路径上的所有点权值都为1.u ...
 - Bzoj 4196: [Noi2015]软件包管理器  树链剖分
		
4196: [Noi2015]软件包管理器 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 721 Solved: 419[Submit][Statu ...
 - noi2015 day1 T2软件包管理器
		
noi2015 软件包管理器 Description Linux用户和OSX用户一定对软件包管理器不会陌生.通过软件包管理器,你可以通过一行命令安装某一个软件包,然后软件包管理器会帮助你从软件源下载软 ...
 - bzoj 4196: [Noi2015]软件包管理器
		
Description Linux用户和OSX用户一定对软件包管理器不会陌生.通过软件包管理器,你可以通过一行命令安装某一个软件包,然后软件包管理器会帮助你从软件源下载软件包,同时自动解决所有的依赖( ...
 
随机推荐
- python 全栈开发:数据类型整体分析
			
数据类型初始 数据类型: int :用于计算. 例子:1.2.3.4........................... 常用方法操作: bit_length() ps:求一个数字转换成二 ...
 - p1164 小A点菜 题解——背包初步
			
传送门 除去花里胡哨的表层题干,其实可以简化为: 若有m个东西,每取一个要K个代价,问若要求取出数据的代价为n的方案数是多少 其实是01背包的一种变式(反正我就是这么认为的,不对又怎样,打我啊). 我 ...
 - Mac下JDK卸载方法
			
注:要卸载 Java,必须具有管理员权限,并且必须以 root 用户身份或者使用 sudo 工具来执行删除命令. 按照下面所示,删除一个目录和一个文件(符号链接): 1.单击位于停靠栏中的 Finde ...
 - 学习GO第一天,自我感觉可麻利的开干了-GO语言配置、开发、服务器部署
			
学习GO第一天,自我感觉可麻利的开干了-GO语言配置.开发.服务器部署 第一步下载 go sdk https://golang.org/dl/ https://storage.googleapis.c ...
 - Chapter 6. Names
			
6.2. Names and Identifiers A name is used to refer to an entity declared in a program. There are two ...
 - pip 更换国内源
			
centos 下 没有找到 pip.conf 操作如下: 进入主目录:cd ~ 创建 .pip 目录: mkdir .pip 进入.pip 创建 pip.conf 文件:cd .pip/ touch ...
 - 枚举类型与Switch
			
1.枚举类型,就是一个集合,集合内所有的元素都是枚举类型的, 主要是应用在可预计的集合中,(你知道它的值就只有那么几种情况,这时就可以使用枚举类型) 如: //结果一般只有两种,成功与失败 publi ...
 - <数据挖掘导论>读书笔记10聚类分析续
			
基于原型的聚类 模糊c均值使用模糊逻辑和模糊集合论的概念,提出一种聚类方案,它很像K均值,但是不需要硬性地将对象分派到一个簇中.模糊c均值算法有时也称为FCM 混合模型聚类采取这样的访谈,簇集合可以用 ...
 - Python——第一个python程序helloworld
			
安装了Python的环境之后,就是编写Python的代码了. 首先,我们来写一个简单的“hello world” 新建一个空白的txt文本,将后缀改为.py 改了后缀之后即变为Python程序的图标 ...
 - 十、获取异步线程返回值Callable
			
一.简介 异步线程的实现接口Runnable是无法获得返回结果的,而另一个接口Callable可以返回结果.并通过如Future等方式来获取异步结果. 二.代码示例 import java.util. ...