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用户一定对软件包管理器不会陌生.通过软件包管理器,你可以通过一行命令安装某一个软件包,然后软件包管理器会帮助你从软件源下载软件包,同时自动解决所有的依赖( ...
随机推荐
- Vue 不睡觉教程2 - 洋气的文件结构
目标书接上回,上回那个例子实在太土了.实际开发中我们不可能把整个网站的js和html全写到一个页面上.所以我们这节课的目标在于改造这个例子的文件结构,让它不那么土Let's do it 环境参数vue ...
- OI中一些常见实用的套路【更新中】
数据结构 在维护树上路径时,如果只是点的独立的加减,可以考虑用括号序来维护(拆成两部分) 需要求树上很多路径中k近/距离和 一类,考虑点分治/在点分树上解决. 子树求和可以转化为DFS序上区间求和 树 ...
- 基于nightmare的美团美食商家爬虫实践
前言美团商家页分析需要爬取的数据有(这里没有按人数爬)爬虫工具选取pysipderscrapynightmare同步任务js动态加载中断继续爬坑总结示例代码 前言 上学的时候自己写过一些爬虫代码,比较 ...
- Mac休眠之后唤醒时无法使用鼠标
Mac休眠之后唤醒时,无法使用鼠标键盘,无法输入密码登录,只能重启. 尝试升级系统,问题依旧,最后在Google的帮助下,问题解决. 解决办法:系统偏好设置->节能->取消硬盘休眠 参考: ...
- ssm项目启动,加载数据库连接池时卡住
今天早上到公司启动项目的时候,加载数据库连接池时卡住,昨晚还好着呢,然后排查原因,最后发现是因为有一个mapper的xml配置文件中 <mapper namespace="com.mi ...
- JVM内存模型和垃圾回收
Java开发有个很基础的问题,虽然我们平时接触的不多,但是了解它却成为Java开发的必备基础——这就是JVM.在C++中我们需要手动申请内存然后释放内存,否则就会出现对象已经不再使用内存却仍被占用的情 ...
- 每天一道leetcode141-环形链表
考试结束,班级平均分只拿到了年级第二,班主任于是问道:大家都知道世界第一高峰珠穆朗玛峰,有人知道世界第二高峰是什么吗?正当班主任要继续发话,只听到角落默默想起来一个声音:”乔戈里峰” 前言 2018. ...
- 使用 Angular 和 RxJS 实现的无限滚动加载
无限滚动加载应该是怎样的? 无限滚动加载列表在用户将页面滚动到指定位置后会异步加载数据.这是避免寻主动加载(每次都需要用户去点击)的好方法,而且它能真正保持应用的性能.同时它还是降低带宽和增强用户体验 ...
- C# 扩展方法一
1. 何为扩展方法 扩展方法是C#3.0引入的语法特性,是一种特殊的静态方法.它使得我们能向现有的数据类型“动态”添加方法,而不需要创建行的派生类型.重新编译或直接修改原始类型的源代码. 注意扩展方法 ...
- scala笔记,主要摘自网络教程
1.scala是一种纯面向对象的语言,每个值都是对象.对象的数据类型以及行为由类和特质描述 2.类的扩展有2种机制:继承和混入机制 3.scala是一种函数式语言,其函数也能当成值来使用 ==4.sc ...