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)