NuGet 3.2 发行说明

NuGet 3.2-RC 发行说明 | NuGet 3.2.1 发行说明

NuGet 3.2 于 2015 年 9 月 16 日发布,作为 3.1.1 版本的改进和修补程序的集合,可从 dist.nuget.orgVisual Studio 库获取。

新功能

  • 位于同一文件夹中的项目现在可以在该文件夹中具有特定于每个项目的不同 project.json 文件。 对于每个项目,将 project.json 文件命名为 {ProjectName}.project.json,这样 NuGet 就会优先采用该配置并根据项目需要进行相应调整。 仅安装 Windows 10 Tools v1.1 时支持此功能 - 1102
  • NuGet 客户端支持指定全局NUGET_PACKAGES环境变量,以指定使用 Windows 10 工具 v1.1 的托管项目中使用的 project.json 共享全局包文件夹的位置。

命令行工具的更新

这是 nuget.exe 客户端的第一个版本,它支持 NuGet v3 服务器,并为使用 project.json 文件管理的项目还原包。

此版本中解决了许多经过身份验证的数据流问题,以改进与客户程序的交互。

  • 安装/还原交互只在初始请求中提交凭据给经过身份验证的源 - 1300456
  • 推送命令无法从配置中获取凭据 - 1248
  • 用户代理和标头现已提交到 NuGet 存储库,以帮助进行统计信息跟踪 - 929

在尝试使用远程 NuGet 存储库时,我们进行了多项改进,以更好地处理网络故障:

  • 改进了无法连接到远程源时的错误消息 - 1238
  • 更正了 NuGet 还原命令,以在发生错误条件时正确返回 1 - 1186
  • 现在,在 HTTP 5xx 失败的情况下,每隔 200 毫秒重试网络连接,最多 5 次尝试 - 1120
  • 改进了在推送命令期间服务器重定向响应的处理 - 1051
  • nuget install -source 现在支持来自 NuGet.Config 的 URL 或存储库名称作为参数 - 1046
  • 还原期间未位于存储库上的缺失包现在报告为错误,而不是警告 1038
  • 更正了 Unix/Linux 场景下对 \r\n 的多部分web请求处理 - 776

可通过多种命令修复问题:

  • 推送命令在对包源执行 PUT 之前不再进行 GET - 1237
  • List 命令不再重复版本号 - 1185
  • 带 -build 参数的包现在正确支持 C# 6.0 - 1107
  • 修正了尝试打包使用 Visual Studio 2015 生成的 F# 项目时出现的问题 - 1048
  • 当包已存在时还原操作将无效 - 1040
  • 改进了文件格式不正确时的 packages.config 错误消息 - 1034
  • 修正了具有 -SolutionDirectory 参数的还原命令,以支持相对路径 - 992
  • 改进了更新命令以支持解决方案范围的更新 - 924

可以在 NuGet GitHub Command-Line 里程碑中找到此版本中解决的问题的完整列表。

Visual Studio 扩展更新

Visual Studio 中的新功能

  • 解决方案节点上添加了一个新的上下文菜单项,允许在不生成解决方案(1274)的情况下还原包。

新的“还原包”上下文菜单项

Visual Studio 中的更新和修复

对经过身份验证的源的修复也会在扩展中汇总和解决。 扩展中还解决了以下身份验证项:

  • 现在正确处理 NuGet v3 经过身份验证的源,而不是 v2 经过身份验证的源 - 1216
  • 更正了项目中使用 project.json 和与 v2 源通信的身份验证凭据请求 - 1082

网络连接影响了 Visual Studio 中的用户界面,我们通过以下修复措施解决了这些问题:

  • 改进了包版本的本地缓存的维护 - 1096
  • 在连接到 v3 源时,更改了失败处理方式,不再尝试将其作为 v2 源 - 1253
  • 现在防止在使用多个包来源安装包时发生安装失败 - 1183

我们改进了与构建操作的交互处理:

  • 现在,如果还原单个项目的包失败 ,则继续生成项目 - 1169
  • 将包安装到解决方案中另一个项目依赖的项目强制重新生成解决方案 - 981
  • 更正失败的包安装,以正确回滚对项目的更改 - 1265
  • 更正了对developmentDependencypackages.config - 包中1263属性的意外删除。
  • 调用 install.ps1 现在传递了正确的 $package.AssemblyReferences 对象 - 1245
  • 在项目处于不正常状态时,不再阻止卸载 UWP 项目中的包 - 1128
  • 包含混合 packages.configproject.json 项目的解决方案现已正确构建,无需执行第二次构建操作 - 1122
  • 正确定位 app.config 文件,如果它们已链接或位于其他文件夹 - 1111894
  • UWP 项目现在可以安装未列出的包 - 1109
  • 解决方案未处于保存状态时,现在允许包还原 - 1081

纠正了处理配置文件更新的方式。

  • 不再在托管项目的后续构建中删除由包提供的目标文件 - 1288
  • ASP.NET 5 解决方案生成期间不再修改 Nuget.Config 文件 - 1201
  • 包更新期间不再更改允许的版本约束 - 1130
  • 锁定文件现在在生成期间保持锁定 - 1127
  • 现在在更新期间对packages.config进行修改,而不是重写它 - 585

改进了与 TFS 源代码管理之间的交互:

  • 绑定到 TFS 的包不再安装失败 - 1164980
  • 更正了 NuGet 用户界面以允许 TFS 2013 集成 - 1071
  • 更正了对包的引用,以确保它们从包文件夹正确还原 - 1004

最后,我们还改进了以下各项:

  • 减少托管项目的日志消息 project.json 的详细程度 - 1163
  • 现在,在用户界面中正确显示已安装的包版本 - 1061
  • nuspec 中指定了依赖项范围的包,现在为稳定包版本安装了这些依赖项的预发布版本 - 1304

可在 NuGet GitHub 3.2 里程碑中找到 Visual Studio 扩展解决的问题的完整列表

已知问题

我们继续跟踪 GitHub 问题列表中的问题,可在以下位置找到: https://github.com/nuget/home/issues