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用户一定对软件包管理器不会陌生.通过软件包管理器,你可以通过一行命令安装某一个软件包,然后软件包管理器会帮助你从软件源下载软件包,同时自动解决所有的依赖( ...
随机推荐
- dwz+ssh Http status: 200 OK
问题描述,用超链接跳转页面的时候报这个错,原因是超链接的target没有设置对, 跳转页面应该用 target="navTab", 我原先用 target="navTab ...
- OI中一些常见实用的套路【更新中】
数据结构 在维护树上路径时,如果只是点的独立的加减,可以考虑用括号序来维护(拆成两部分) 需要求树上很多路径中k近/距离和 一类,考虑点分治/在点分树上解决. 子树求和可以转化为DFS序上区间求和 树 ...
- [ZJOI2019]Minimax搜索
先求出根节点的权值\(w\).根据套路,我们对于每个\(k\),计算\(w(s)\leq k\)的方案数,差分得到答案.为了方便,接下来考虑计算概率而不是方案数. 可以发现,对于一个给定的有解的子集, ...
- Powershell cannot be loaded because running scripts is disabled on this system 解决办法
问题背景 第一次跑ps时,出现了下面的提示.这是因为windows不允许执行脚本而已,不要大惊小怪. 解决办法 这个需要管理员执行,不然会出现以下的情况 正常情况
- MongoDB ver 4 几个常用命令
1. 为某个数据库创建用户: use db_test1; db.createUser({ user:"test_user_1", pwd:"test_user_1_pwd ...
- java.lang.Exception: The server rejected the connection: None of the protocols were accepted
solution for this is from comment for https://issues.jenkins-ci.org/browse/JENKINS-29616. The follow ...
- C++11 实现生产者消费者双缓冲
基础的生产者消费者模型,生产者向公共缓存区写入数据,消费者从公共缓存区读取数据进行处理,两个线程访问公共资源,加锁实现数据的一致性. 通过加锁来实现 class Produce_1 { public: ...
- ok6410 android driver(1)
target system : Android (OK6410) host system : Debian Wheezy AMD64 1.Set up android system in ok6410 ...
- JavaScript数据结构-16.二叉树计数
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- IDEA 启动项目,tomcat中配置的虚拟路径无法使用
有时候,使用idea启动项目,非动静分离项目,直接根据图片url地址显示图片,会发现图片无法显示,tomcat中配置的虚拟路径无法使用,这时候需要配置idea.选择路径,然后给与一个访问名就行了.