NuGet 分发车辆:
| NuGet 版本 | 在 Visual Studio 版本中可用 | 在 .NET SDK 中可用 |
|---|---|---|
| 7.0.0 | Visual Studio 2026 版本 18.0.0 | 10.0.1001 |
| 7.0.1 | Visual Studio 2026 版本 18.1.0 |
1 随任何 .NET 工作负载一起安装 Visual Studio 2026
摘要:7.0.1 中的新增功能
此版本中已修复的问题
- 修复了将中央包管理与允许的浮动版本配合使用时出现的 NU1011 错误 #14637
摘要:7.0.0 中的新增功能
面向 .NET 10 的项目默认使用 NuGetAuditMode=all 设置,从而对传递包中的漏洞发出警告 #14161。
创建了 .NET 10 SDK 或更高版本支持的 NuGet 模型上下文协议 (MCP) 服务器。 NuGet 的 MCP 在 Visual Studio 2026 中预安装,在 VS 17.14 和 VS Code 中可安装。 服务器作为 NuGet.Mcp.Server 包发布 nuget.org。
启用打包旧 PackageReference 项目而无需包 - #14046
在 .NET 10 中弃用 SHA-1 - #13814
详细信息窗格反映来自审核源的漏洞数据 - #14554
包管理器 UI 中的 NuGet AuditSources 支持 - #13954
将 NuGet 的设置迁移到新的 Visual Studio 选项窗口
dotnet update package --vulnerable (审核修补程序) - #13372
重大变化
在还原期间添加包 ID 验证 - #14407
7.0 中不再支持 Project.json。 Visual Studio 2026 自动将 project.json 项目迁移到 PackageReference
包修剪将导致包锁定文件中出现一次性差异 - #14272
通过应用 PrivateAssets=all 和 IncludeAssets=none 属性,来实现对直接引用的私有化 - #14196
在 NuGet.exe sign 和 mssign 命令中因使用 SHA-1 指纹而引发错误 - #13962
在服务索引中的资源中使用非 https 源时显示错误 - #13364
SDK 重大变更
Project.json 弃用
已删除未使用的 NuGet VS 扩展性 API - #14403
删除在 NuGet.Frameworks、NuGet.Protocol、NuGet.Commands 和 NuGet.PackageManagement 中标记为已过时的所有未使用的 API - #14395
从 NuGet.Common、NuGet.Configuration、NuGet.LibraryModel、NuGet.Packaging 和 NuGet.ProjectModel 中删除过时的 API - #14393
阻止和删除未使用的还原实现的代码,例如
Standalone。 - #14184删除
DotnetToolReference还原 - #14183
此版本中已修复的问题
NuGet SDK 修复
请勿在 NuGet.Protocol 中使用基于反射的反序列化 - #14470
将 JsonSerializerIsReflectionDisabled 更新为 Nuget.Protocols 6.13.1 的应用中,若 JsonSerializerIsReflectionEnabledByDefault 设置为 false - #14111
.NET 命令行界面 (CLI)
为 .NET core 身份验证插件启用 CanShowDialog - #14010
“dotnet package update”修改了错误的项目文件 (csproj) - #14585
dotnet nuget 验证应输出包内容哈希 - #14384
dotnet 包更新应支持 --verbosity - #14319
dotnet 包更新应支持 CPM 和 VersionOverride - #14318
dotnet 包更新应支持多个包 - #14308
dotnet 包更新应支持包源映射 - #14307
dotnet 包更新到特定版本 - #14306
dotnet 包更新初始版本 - #14305
[Bug Bash][不稳定]错误“尝试除以零”。 执行命令“dotnet list [ProjectPath] package --vulnerable” - #14122
[功能]: dotnet list [project | solution] 包不适用于解决方案筛选器 - #11789
Visual Studio 中的包管理器 UI
将搜索控件转换为 Fluent UI - #14469
将 Fluent TextBox 用于项目 PM UI 已安装版本 - #14466
[Bug Bash]PM UI 的版本下拉列表中存在一个小差距 - #11990
[Bug Bash]PM UI 的下拉列表不区分选定项和悬停项之间的背景色 - #10977
[Bug Bash]使用 Tab 键将焦点放在“版本”下拉框时,按键盘上的向下翻页按钮会使框为空 - #13605
死代码:ActionsAndVersions 视图 - #14464
Visual Studio 选项
退役旧版 VS 选项的 NuGet 设置 - #14398
在“选项”对话框中添加 http 源时,让用户单击复选框以更明确地同意正在添加的 AllowInsecureConnections - #14377
没有 AllowInsecureConnections 的 HTTP 源的包源设置中所需的错误 - #14367
改进 Visual Studio 选项中 NuGet 设置的验证 - #14359
键入时显示 NuGet 选项页上的验证错误 - #14358
[Bug Bash][不稳定]第一次从“包源映射”列表中移除源映射不起效 - #13520
[本地化]“Options-NuGet> 包管理器->包源映射”页中的表标题“包源映射”未本地化 - #14550
[Bug Bash] 先前在“选项-NuGet 包管理器-包源”窗口中的“全局包源”列表中禁用脱机包源后,无法再次启用它 - #13434
[Bug Bash]“添加新包源映射”对话框的“源”列未设置最小宽度,这使得它可以被拉出视野 - #13355
[Bug Bash] 当所有的源都被删除时,“选项”对话框第一次重新打开时,应该在“包源”列表中恢复默认包源“Microsoft Visual Studio Offline Packages” - #13278
[Bug Bash]“选项->NuGet 包管理器->包源映射”窗口中新添加的包源映射不应区分大小写 - #13210
[Bug Bash]从“Option-NuGet> 包管理器”窗口中其他选项卡切换回“包源映射”选项卡后,新添加的包源映射将丢失 - #13150
[Bug Bash]在“包源映射”列表中未选择任何包源映射时,应禁用“删除”按钮 - #13115
[CSY] 重复的快捷键显示在“选项-NuGet> 包管理器->包源”对话框中 - #7822
VS NuGet PMUI - 计算机级别的包源区域也应该支持垂直尺寸调整 - #7560
[Bug Bash] 修改源“Microsoft Visual Studio 脱机包”的名称时,会出现重复的包源 - #13057
[Bug Bash] 勾选或取消勾选任何具有重复源的包源的“启用”复选框后,“Options-NuGet 包管理器-包源”页面将被禁用 - >
必须手动选择“添加包源”对话框中的预填充文本 - #14450
更新名称时,VS 不应删除包源属性 - #14370
包修剪
PrunePackageReference 的推出警告 - #14126
当 nuget.org 不是包源时,缺少“nuget 安装”中的审核警告 - #14096
无法推送到通过命令行指定的 HTTP 源 - #14047
针对 .NET 10 的所有项目(包括多目标项目)启用包裁剪 - #14345
将开启修剪的架构移动到 NuGet.targets - #14424
将_RestorePackagePruningDefault更改为 RestorePackagePruningDefault - #14511
Restore
dotnet restore/Visual Studio 与 .esproj + Nx project.json 发生冲突 - #13512
在修剪与锁定模式一起使用时改进 NU1004 - #14075
请考虑不编写 NuGetToolVersion 以在还原时生成 MSBuild 属性文件 - #14355
安装 SQL Server Management Studio 21 时 NuGet 还原失败 - #14349
删除NUGET_EXPERIMENTAL_USE_NJ_FOR_FILE_PARSING - #14257
删除 RestoreTargetGraph.Name,因为 restoreTargetGraph.TargetGraphName 是广泛使用的版本 - #14529
删除 RestoreArgs.LockFileVersion,因为它的功能未使用 - #14524
删除NUGET_BULK_RESTORE_COORDINATION和NUGET_SOLUTION_CACHE_INITIALIZATION回退 - #14502
依赖项解析程序
Other
停止 ilmerging 程序包 - #13079
使 NuGet.Client 的 Build.ps1 在 VSCode 中对 GitHub Copilot 更友好 - #14453
在重复生成时生成相同的 [Content_Types].xml - #14357
pack legacy csproj:在 VS 生成工具中包含包目标和任务 - #14520
当解决方案中唯一的项目是 project.json 项目时 VS 崩溃 - #14553
查看异常处理 - #14440
通过避免冗余字典查找来提高性能 - #14432
LockFileLibrary 无需变动 - #14385
社区贡献
感谢所有帮助使这次 NuGet 发布变得精彩的贡献者!
-
SimonCropp
- 6720 删除冗余的默认构造函数
- 6610 在 GetNupkgInfo 的消息中添加“无最低版本要求”
- 6581 删除 MarkTransitiveOrigin 中的冗余字典查找
- 6596 在 PackageItemViewModelTests 中启用可为 null 性
- 6634 删除 IFrameworkTargetable
- 6616 避免在 PluginFindPackageByIdResource 中进行冗余版本分析
- 6595 在 ReadmePreviewViewModelTests 中启用可空性
- 6587 删除 ProcessUnrankedEntries 中的冗余字典查找
- 6598 在 EmbeddedResourcesCapabilityTests 中启用空值性
- 6577 使用字段而不是专用属性
- 6622 删除 GetPackagesToBeReinstalled 中的未使用列表
- projectManagerService.GetMetadataAsync 返回值的 6589 冗余 null 检查
- 6605 在 VSRestoreSettingsUtilityTests 中启用可空性
- 6575 删除 CredentialServiceAdapter.GetCredentials 中的冗余字典查找
- 6601 在 NuGetInstallCommandTest 中启用 nullabe
- 6593 在 IProjectContextInfoExtensionsTests 中启用可为 null
- 6614 删除 DependencyGraphFileRequestProvider 中的冗余列表
- 6625 删除 PackageExtractor 中的未使用的变量
- 6609 修复 UnresolvedMessages 中的空值问题
- 6608 删除未使用的 contextForGather。
- 6628 删除 CredentialsItem 中的冗余枚举
- 6617 删除 MSBuildRestoreUtility 中的 toolItems 列表实例
- 6599 修复 Constructor_SetReportAbuseUrl_Initialize 中参数的可空性问题...
- 在 LegacyPackageReferenceProjectTests 中启用可空特性 6604
- 6631 删除 DependencyGraphSpecRequestProvider.CollectReferences
- 6635 删除 EnvDteProjectExtensions.PathComparer
- 6623 删除 ManifestSchemaUtility 中的冗余 GetManifestResourceNames
- 6619 删除未使用的 packageID 变量
- 6620 删除 PackageManagerControl 中的未使用的变量
- 6640 删除冗余异常处理
- 6637 删除 PackageManagerControl.AddMigratorBar
- 6629 删除 ResolverMetadataClient 中的未使用的 HashSet 实例
- 6602 在 MSBuildUtilityTest 中启用可空类型
- 6641 删除 UpdateCommand.ExecuteCommandAsync 中的冗余 null 条件
- 6683 删除 GetTempFilePath 中的冗余字符串分配
- 6626 删除 SignedPackageArchiveIOUtility 中的未使用的变量
- 6574 删除 CreatePackageSourceMappingDictionary 中的冗余字典查找
- 6594 在 InfiniteScrollListTests 中启用可空性
- 6682 在 SafeReadAsync 中使用异步延迟
- 在 NuGetUpdateCommandTests 中启用可为 null 的 6600
- 6606 在 VSNominationUtilitiesTests 中启用可为空
- 6613 删除 GetExternalProject 中的冗余类型变量
- 6611 删除未使用的 solutionService 实例
- 6643 删除 MsBuildUtility.GetMsBuildPathInPathVar
- 6632 删除 PackageSpecFactory.GetTargetFrameworkStrings
- 6573 在 ProjectFactory.ProcessDependencies 方法中避免某些内存分配
- 6588 从 GetPreviewResultsAsync 中删除字典查找
- 6597 修复 PackageModelCreationTestHelper 中的 null 性
- 6612 删除 NuGetPackageManager 中的未使用列表实例
- 6591 启用可为 null 在 PackageSourceValidatorTests 中
- 6603 修复 IVsProjectBuildProperties 中的可空性
- 6636 从 PackageReferenceProject 中删除_project* 字段
- 6630 删除 LocalV3FindPackageByIdResource 中的未使用的标识实例
- 6618 删除 NuGetPackageManager 中的 LoggerAdapter 实例
- 6621 删除 SolutionUpToDateChecker 中的未使用 projectsByUniqueName
- 6624 删除 PackageBuilder 中未使用的变量
- 6633 删除 JsonPackageSpecReader 的分隔字符串标记和版本分隔符
- 6642 使用强制转换而不是 as,并在 CommandLineParser.AssignValue 中进行 null 检查。
- 6615 删除 GetPluginAsync 中的冗余列表
- 6627 删除 MisplacedAssemblyOutsideLibRule 中的未使用的 GetDirectoryName
- 6578 删除 PrunePackageTree.PruneDowngrades 中的冗余字典查找
- 6576 删除 RecommenderPackageFeed 中的冗余字典查找
- 男爵费尔
- omajid
-
AlexDelepine
- 6793 更新 VS 的 Ngen 优先级
- hickford
- 6475 一致地填入审核来源
-
nohwnd
- 6735 禁用实用程序 powershell.exe 调用中的加载配置文件
-
mmitche
- 6539 将 NuGet 移动到 xliff-tasks
-
dkurepa
- 6644 添加 Version.Details.props
-
bdukes
-
6530 修复
nuget.exe将 MSBuild 的查找方式从 Visual Studio 还原到 SSMS
-
6530 修复
-
ToddGrun
- 6519 出于性能和理智原因使 LockFileLibrary 不可变