NuGet 6.8 发布与主要更新
随着 .NET 8.0 的发布,NuGet 6.8 也正式推出,并已集成到 Visual Studio 2022 中。此次更新带来了多项重要改进,包括 NuGetAudit 包漏洞通知、HTTPS Everywhere 警告的退出选项、通过 Package Manager UI 在安装/更新时进行包源映射、改进的 Visual Studio 条件包更新支持,以及在 nuget source add 命令中新增的 ProtocolVersion 参数。
新功能与改进
- NuGetAudit
NuGetAudit 提供了 PackageReference 包中已知漏洞的通知功能。开发者可以根据严重性阈值配置警告,报告直接和传递包中的漏洞,从而增强项目的安全意识。在 Visual Studio 中,审计信息显示在错误列表窗口和 SDK 风格项目的项目依赖项中,还原后解决方案资源管理器会显示警告栏,提醒用户项目中使用了存在已知漏洞的包。即使仅配置了直接包的审计,Package Manager UI 也会在“已安装”标签页中警告已知漏洞的传递包。 - HTTPS Everywhere 警告退出选项
NuGet 6.8 解决了 6.3 版本中关于非 HTTPS 源的安全问题。通过在 nuget.config 文件中引入allowInsecureConnections属性,开发者可以选择退出 HTTPS Everywhere 警告,根据个人安全风险接受程度提供灵活性。默认情况下,allowInsecureConnections设置为 false。 - 包源映射扩展
在 .NET 6 中引入的包源映射功能,允许精确控制解决方案中的包源。NuGet 6.8 扩展了这一功能,支持在通过 Visual Studio 的 NuGet UI 安装/更新包时自动创建包源映射。工具现在会考虑全局包文件夹中的传递依赖项,如果源已为解决方案启用,则自动映射;如果未启用,则会失败并报错。 - 条件包更新
Visual Studio 现在实现了条件包更新功能。针对多个框架的项目(如 MAUI 或 Uno 项目)中条件安装的包,将通过 Package Manager UI 或 Package Manager Console 正确更新。此前,更新条件包通常会触发 NU1504 警告,尝试将包安装到所有框架。NuGet 6.8 的更新会识别何时包是条件安装的,并仅在已安装的框架中更新它。 - ProtocolVersion 参数
响应开发者和社区的需求,NuGet 6.8 在命令行界面(CLI)的 nuget source add 命令中引入了 ProtocolVersion 参数。开发者现在可以在添加新包源时指定 protocolVersion 属性,从而更好地控制源配置过程。
重大变更
NuGet SDK 的此次发布包含一些重大变更,但使用 NuGet 工具(如 Visual Studio 或 .NET SDK)的用户不受影响。具体变更包括:
- NuGetOperationType 已从 NuGet.PackageManagement 中移除,建议用户改用 NuGetProjectActionType。
- PackageVulnerabilityInfo 的严重性从整数类型更改为枚举类型。
- NuGet.Common 中添加了可空注解。
- 不可变类型的 Clone 方法已被弃用。
下载与更多信息
除了 Visual Studio 2022 的独立可执行文件外,针对 Windows、macOS 和 Linux 的 NuGet 6.8 现已可供下载。开发者可以查看完整发布说明以获取更多详细信息,包括此版本中修复的问题。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。