NuGet 2.0 发行说明

NuGet 1.8 发行说明 | NuGet 2.1 发行说明

NuGet 2.0 于 2012 年 6 月 19 日发布。

已知安装问题

如果运行的是 VS 2010 SP1,则如果安装了较旧版本,则尝试升级 NuGet 时可能会遇到安装错误。

解决方法是只需卸载 NuGet,然后从 VS 扩展库安装它。 有关详细信息,请参阅 https://support.microsoft.com/kb/2581019 ,或 直接转到 VS 修补程序

注意:如果 Visual Studio 不允许卸载扩展(“卸载”按钮已禁用),则可能需要使用“以管理员身份运行”重启 Visual Studio。

如该关于包还原许可的文章中所述,NuGet 2.0 现在需要同意才能使包还原联机并下载包。 请确保已通过包管理器配置对话框或 EnableNuGetPackageRestore 环境变量提供同意。

按目标框架对依赖项进行分组

从版本 2.0 开始,包依赖项可能因目标项目的框架配置文件而异。 这是使用更新 .nuspec 的架构完成的。 该 <dependencies> 元素现在可以包含一组 <group> 元素。 每个组都包含零个或多个 <dependency> 元素和一个 targetFramework 属性。 如果目标框架与目标项目框架配置文件兼容,则组中的所有依赖项一起安装。 例如:

<dependencies>
    <group>
        <dependency id="RouteMagic" version="1.1.0" />
    </group>

    <group targetFramework="net40">
        <dependency id="jQuery" />
        <dependency id="WebActivator" />
    </group>

    <group targetFramework="sl30">
    </group>
</dependencies>

请注意,组可以包含 依赖项。 在上面的示例中,如果将包安装到面向 Silverlight 3.0 或更高版本的项目中,则不会安装任何依赖项。 如果将包安装到面向 .NET 4.0 或更高版本的项目中,将安装两个依赖项 jQuery 和 WebActivator。 如果将包安装到面向这 2 个框架的早期版本的项目中,或者安装任何其他框架,则将安装 RouteMagic 1.1.0。 组之间没有继承。 如果项目的目标框架与组的属性匹配 targetFramework ,则只会安装该组中的依赖项。

包可以采用两种格式之一来指定包依赖项:使用旧格式的<dependency>元素组成的平面列表,或使用组。 如果使用格式 <group> ,则无法将包安装到低于 2.0 的 NuGet 版本中。

请注意,不允许混合这两种格式。 例如,以下代码片段 无效 ,NuGet 将拒绝。

<dependencies>
    <dependency id="jQuery" />
    <dependency id="WebActivator" />

    <group>
        <dependency id="RouteMagic" version="1.1.0" />
    </group>
</dependencies>

按目标框架对内容文件和 PowerShell 脚本进行分组

除了程序集引用,内容文件和 PowerShell 脚本还可以按目标框架进行分组。 在指定目标框架的文件夹中找到 lib 的同一文件夹结构现在可以以相同的方式应用于 contenttools 文件夹。 例如:

\content
    \net11
        \MyContent.txt
    \net20
        \MyContent20.txt
    \net40
    \sl40
        \MySilverlightContent.html

\tools
    \init.ps1
    \net40
        \install.ps1
        \uninstall.ps1
    \sl40
        \install.ps1
        \uninstall.ps1

注意:由于 init.ps1 在解决方案级别执行,并且不依赖于任何单个项目,因此它必须直接放置在文件夹下 tools 。 如果放置在特定于框架的文件夹内,将忽略它。

此外,NuGet 2.0 中的一项新功能是框架文件夹可以为 ,在这种情况下,NuGet 不会添加程序集引用、添加内容文件或运行特定框架版本的 PowerShell 脚本。 在上面的示例中,文件夹 content\net40 为空。

改进了选项卡完成性能

NuGet 包管理器控制台中的选项卡完成功能已更新,可显著提高性能。 按下 Tab 键后,建议下拉列表出现的时间延迟会大大减少。

漏洞修复

NuGet 2.0 包括许多 bug 修复,重点在于包还原许可和性能。 NuGet 2.0 中修复的工作项完整列表,请查看 [NuGet Issue Tracker for this release](http://nuget.codeplex.com/workitem/list/advanced?keyword=&status=Closed&type=All&priority=All&release=NuGet%202.0&assignedTo=All&component=All&sortField=Votes&sortDirection=Descending&page=0)