NuGet 2.7.2 发行说明

NuGet 2.7.1 发行说明 | NuGet 2.8 发行说明

NuGet 2.7.2 已于 2013 年 11 月 11 日发布。

值得注意的 bug 修复和功能

许可证文本

一段时间以来,Microsoft 已将针对多个常用开源库的 NuGet 包作为 Visual Studio 中 Web 应用程序项目的默认模板的一部分而纳入其中。 jQuery 可能是此类库中的最知名的一例。 由于随产品一起提供的与组件关联的支持协议,包的脚本文件所包含的许可证文本与公共 nuget.org 库中同一包中找到的脚本文件各不相同。 此文本差异可能会因导致脚本文件具有不同内容哈希值(因而在项目中会被视为已修改)的不同许可证文本块而阻止包更新继续运行。

为缓解此问题,NuGet 2.7.2 允许脚本作者在特殊标记的部分包含许可证文本块,如下所示。

/************** NUGET: BEGIN LICENSE TEXT **************
    * The following code is licensed under the MIT license
    * Additional license information below is informational
    * only.
    ************** NUGET: END LICENSE TEXT ***************/

使用包含此块的内容文件来更新包时,NuGet 不会将块的内容与 NuGet 库中的版本进行比较,因此可删除和更新内容文件,就像它与原始副本匹配一样。

此块由文本“NUGET: BEGIN LICENSE TEXT”和“NUGET: END LICENSE TEXT”进行标识,且出现在开头和结束行的任何位置。 不存在其他格式要求,因而允许在任意类型的文本文件中使用此功能,而不考虑语言。

为非框架程序集添加绑定重定向

对于属于 .NET Framework 的程序集,NuGet 会在更新包时跳过以下操作:将绑定重定向添加到应用程序的配置文件中。 此修补程序解决了 NuGet 2.7 中的回归问题,即,没有为某些程序集添加绑定重定向,即使这些程序集不被视为 .NET Framework 的一部分。 NuGet 2.7.2 会还原先前的 NuGet 2.5 和 2.6 行为,并添加绑定重定向。

安装已装有 Xamarin 工具的可移植库

在计算机上安装 Xamarin 的开发工具时,这些工具会修改支持的框架配置数据,从而指定现有目标框架组合与 Xamarin 框架之间的兼容性。 通过使用版本 2.7.2,NuGet 现已了解这些隐式兼容性规则。因此,面向 Xamarin 平台的开发人员可轻松安装与 Xamarin 兼容、但在包元数据中并未如此显式标记的可移植库。

遵循计算机范围的配置设置

使用分层 Nuget.Config 文件时,没有为离解决方案根目录最近的 Nuget.Config 文件遵循 repositoryPath 键。 在 Visual Studio 2013 中,NuGet 会在 %ProgramData%\NuGet\Config\VisualStudio\12.0\Microsoft.VisualStudio.config 中安装自定义 Nuget.Config 文件,以便添加“Microsoft 和 .NET”包源。 因此,在解决方案中使用自定义 repositoryPath 的解决方法是:删除计算机级 Nuget.Config,这也意味着会删除“Microsoft 和 .NET”包源。 现在,使用分层 Nuget.Config 文件时,NuGet 2.7.2 会遵循 repositoryPath 的优先规则。

所有更改

有关 NuGet 2.7.2 中已修复工作项的完整列表,请查看 [NuGet Issue Tracker for this release](https://nuget.codeplex.com/workitem/list/advanced?keyword=&status=All&type=All&priority=All&release=NuGet%202.7.2&assignedTo=All&component=All&sortField=LastUpdatedDate&sortDirection=Descending&page=0&reasonClosed=Fixed)