NuGet 1.8 发行说明
NuGet 1.7 发行说明 | NuGet 2.0 发行说明
NuGet 1.8 已于 2012 年 5 月 23 日发布。
由于安装了旧版本,尝试升级 NuGet 时如果运行 VS 2010 SP1,则可能会出现安装错误。
解决方法是直接卸载 NuGet,然后从 VS 扩展库安装它。 有关详细信息,请参阅 https://support.microsoft.com/kb/2581019 或直接转到 VS 修补程序。
注意:如果 Visual Studio 不允许卸载扩展(“卸载”按钮被禁用),则可能需使用“以管理员身份运行”来重启 Visual Studio。
NuGet 1.8 发布后不久,我们了解到 1.8 版本中的加密更改会破坏 Windows XP 上的用户。
此后,我们发布了用于修复此问题的修补程序。 通过 Visual Studio 扩展库来更新 NuGet 可收到此修补程序。
NuGet 1.8 现在支持为本地化资源创建单独的包,类似于 .NET Framework 的附属程序集功能。 附属包的创建方式与任何其他 NuGet 包相同,并添加了一些约定:
- 附属包 ID 和文件名应包含与某一 .NET Framework 所用区域性字符串标准匹配的后缀。
- 在其
.nuspec
文件中,附属包应通过 ID 中所用同一区域性字符串来定义语言元素 - 附属包应在其
.nuspec
文件中定义针对其核心包(具有相同 ID 但没有语言后缀的包)的依赖项。 核心包需在存储库中提供才能成功完成安装。
若要安装包含本地化资源的包,开发人员会从存储库中显式选择本地化包。 目前,NuGet 库不对附属包提供任何类型的特殊处理。
由于附属包会列出了其核心包的依赖项,因此附属包和核心包均会拉取到 NuGet 包文件夹中并进行安装。
此外,在安装附属包时,NuGet 还会识别区域性字符串命名约定,然后将本地化的资源程序集复制到核心包中的正确子文件夹中,以便 .NET Framework 对其进行选取。
针对附属包的其中一个现有 bug 为:NuGet 未将本地化资源复制到网站项目的 bin
文件夹。 此问题将在下一版本的 NuGet 中修复。
有关演示如何创建和使用附属包的完整示例,请参阅 https://github.com/NuGet/SatellitePackageSample。
在 NuGet 1.8 中,我们奠定了支持对包还原施加重要约束的基础,从而保护用户隐私。 此约束要求使用包还原来生成项目和解决方案的开发人员显式同意包还原恢复联机状态,以便从已配置的包源下载包。
有两种方法可用于提供此同意。 第一个方法可在包管理器配置对话框中找到,如下所示。 此方法主要用于开发人员计算机。
第二个方法是将环境变量“EnableNuGetPackageRestore”设为“true”值。 此方法适用于无人值守计算机,例如 CI 或生成服务器。
现在,如上文所述,我们仅在 NuGet 1.8 中为此功能奠定了基础。 实际上,这意味着,虽然我们已添加所有逻辑来启用该功能,但在此版本中目前并未将其强制实施。 但我们将在下一版本的 NuGet 中启用它,因此我们希望尽快了解此情况,以便适当地配置环境,以免在开始强制实施此同意约束时受到影响。
有关更多详细信息,请参阅有关此功能的团队博客文章。
通过修改 install 命令以并行下载和安装包,NuGet 1.8 为 nuget.exe 和扩展包还原提供了大幅性能改进。 高级测试表明,在 NuGet 1.8 中将 6 个包安装到项目的性能可提高约 35%。 将包数增加到 25 可实现约 60% 的性能提升。
NuGet 1.8 包相当数量的 bug 修复,且重点针对包管理器控制台和包还原工作流,尤其是因为它与包还原同意以及 Windows 8 Express 集成相关。
有关 NuGet 1.8 中已修复工作项的完整列表,请查看 [NuGet Issue Tracker for this release](http://nuget.codeplex.com/workitem/list/advanced?keyword=&status=Closed&type=All&priority=All&release=NuGet%201.8&assignedTo=All&component=All&sortField=Votes&sortDirection=Descending&page=0)
。