NuGet 6.10 发行说明
NuGet 分发车辆:
NuGet 版本 | 适用于 Visual Studio 版本 | 适用于 .NET SDK |
---|---|---|
6.10.2 | Visual Studio 2022 版本 17.10 | 8.0.3xx1 |
1 随具有 .NET 工作负荷的 Visual Studio 2022 一起安装
摘要:6.10.2 新增功能
此版本中已修复的问题
- 在 Directory.Packages.props 存在时隐式还原“启用中央包管理” – #11834
1 随具有 .NET 工作负荷的 Visual Studio 2022 一起安装
摘要:6.10.1 新增功能
此版本中已修复的问题
当解决方案中的多个 packages.config 项目共享相同名称时,Visual Studio 和 PMC 还原/更新失败(已添加具有相同键的项) - #13465
##[error]nuget 命令失败,出现退出代码 (1) 和错误(已添加具有相同键的项)。 - #13456
摘要:6.10 的新增功能
[功能]:添加 dotnet nuget config 命令 - #12469
在 packages.config 还原期间检测到漏洞时发出警告 - #12307
当基于 packages.config 的项目中存在漏洞时,显示漏洞信息栏。 - #13271
[Bug]:VS 凭据提供程序错误地设置值
isRetry
- #11210dotnet list package --vulnerable 需要持续登录到第三方 nuget 源 - #12456
6.10.0 已知问题
在以下情况下,对于使用 packages.config 的项目,NuGet.exe 6.10.0 和 Visual Studio 17.10.0 可能在 NuGet 操作过程中遭遇失败:
- 解决方案中的两个或以上项目具有相同的名称
- 解决方案中的两个或以上项目使用相同的 packages.config 文件(在同一目录中存在项目文件)
在 NuGet.exe 6.10.1 和 Visual Studio 17.10.2 中修复了这些问题。
可在以下位置找到公共跟踪问题和相关讨论:
- 将 Visual Studio 社区更新到 17.10.0 后,无法进行 nuget 还原。 已添加了具有相同键的项。
- 当解决方案中的多个 packages.config 项目共享相同名称时,Visual Studio 和 PMC 还原/更新失败(已添加具有相同键的项)
- ##[error]nuget 命令失败,出现退出代码 (1) 和错误(已添加具有相同键的项)。
中断性变更
向 NuGet.Configuration 添加可为 null 的批注 - #13250
[Dotnet 包搜索] 执行命令“dotnet package search <Package Name> --exact-match --format json”时,包的搜索结果应为“version”而不是“latestVersion”- #13158
ResolvedDependencyKey 应是可减少内存分配的结构 - #13138
[DCR]:中央包管理 - 尊重 .props 文件作为选择加入功能的一种方式。 - #11834
删除 NuGet.Packaging.Core - #12495
此版本中已修复的问题
在 CLI 应用场景中的 packages.config 还原过程中检测到漏洞时发出警告。 - #13253
停止在资产文件读取中使用 JObject,以减少分配。 #12715
添加事件跟踪以还原,从而衡量性能 - #13274
从 nuget.config 文件读取 auditSources - #13211
SourceRepository.GetResourceAsync 应可取消。 - #13234
CreateWalkAsync 不应递归 - #13222
ProjectModel.HashObjectWriter.OnFlush 使用的是 SHA512 哈希,而不是更便宜的哈希(这似乎是过分之举)- #13214
所有者包元数据是 JSON 中的数组,但是协议类型中的字符串 - #13186
dotnet package search --verbosity 详细输出表过宽 - #13162
SetWarningProperties() 中的调用由于多个枚举而产生分配开销 - #13151
在对象池实现中使用 ConcurrentStack 可创建大量分配 - #13147
IsBestVersion 将 HashSet<T> 枚举器装箱,导致在还原过程中产生大量分配开销。 - #13146
弃用 NuGet.exe 列表,以支持 NuGet.exe 搜索 - #7912
[Dotnet 包搜索]使用“--verbosity detailed”和“--format json”进行搜索时,将引发未经处理的异常 - #13300
dotnet package search
夜间在 .NET 9 预览版 2 上崩溃 - #13286使用 StringBuilderPool,而不是分配新的 StringBuilder - #13285
为列表<T> 传入适当的大小 - #13284
JsonTextWriter 分配大量字符串 - #13283
StringBuilder.Append() 在追加 int 时分配的用法 - #13282
结构枚举器的不必要装箱 - #13281
应释放进程对象,这样终结器就不会运行 - #13280
避免对集合的枚举器进行装箱 - #13279
[.NET 9 预览版 3] no-op restore 不再是 no-op - #13269
减少调用 IVsProjectAdpater.IsCapabilityMatchAsync 时的分配 - #13268
通过最大限度地减少差异来合并 packages.config 还原实现 - #13233
展开 LINQ 用法以剪裁 AddMSBuildAssets 中的某些分配 - #13223
PackageSpecWriter 对 ICollection<T>/IList<T> 实例调用 Any,而不是 .Count - #13213
StringBuilder.Append(int) 导致不必要的分配 - #13207
缓存任务结果可能会导致所有延续都发生在同一个线程上 - #13206
LibraryDependency 创建一个大部分为空的集合 - #13184
PackageSpecWriter 应该写出版本的原始字符串,而不是分配新的字符串 - #13183
SetCentralDependencies 调用 OrderBy,而不指定默认为文化敏感比较的比较 - #13182
dotnet 包搜索中 json 格式的搜索结果不应包括未提供值的字段 - #13166
执行命令“dotnet package search <Package Name> --format json”时,包的搜索结果应为“totalDownloads”而不是“total downloads”- #13165
[dotnet 包搜索] 加载服务索引失败应为错误,而不是警告。 - #13163
dotnet 包搜索格式除了显示 json 文件外,还显示帮助输出 - #13161
取消基于图形的静态还原未结束还原过程 - #13140
在 VersionRange 分析中使用 string.Contains 而不是 IEnumerable.Contains - #13124
静态图形还原未还原仅 packages.config 解决方案 - #13109
NuGet 还原始终触及 project.assets.json 文件,即使在需要日志错误消息时没有更改任何内容。 - #13098
还原时审核不得引发操作并使其失败 - #13085
还原时出现“已添加具有相同键的项目”错误。 - #13067
PM UI 滚动不再加载其他包。 - #13063
NuGet 还原缓存检查不再使用文件存在缓存 - #13058
从 ASP.Net 项目添加对 esproj 的引用导致 NU1105 错误 - #12986
RemoteDependencyWalker 由于以递归方式调用而多次分配 - #12748
[Bug]:当配置了无效/无法访问的源时,取消 msbuild 还原的速度很慢 - #11813
还原:ProjectSpec 的过度深度克隆 - #9041
社区参与
感谢帮助实现此出色 NuGet 版本的所有参与者!
- Erarndt
- 5659 枚举列表时减少装箱
- 5662 在更多位置使用 StringBuilder.AppendInt(),以减少在将整数追加到 StringBuilder 时分配
- 5663 从 TextWriter.NewLine 实现中移除分配
- 5665 使用共用 StringBuilder
- 5661 避免 PackageSpecificWarningProperties.AddRangeOfCodes 与 TransitiveNoWarnUtils.AddToSeen 中的枚举器装箱
- 5660 确保在启动身份验证插件时释放进程对象
- 5664 在 TopologicalSortUtility.CalculateRelationships 中指定列表大小
- 5624 将 CreateNodeAsync 切换到迭代方法
- 5584 展开 LINQ 用法以剪裁 AddMSBuildAssets 中的某些分配
- 5574 展开多个 LINQ 调用
- 5593 进一步减少 CreateGraphNodeAsync 中的分配
- 5592 编写 Json 对象时避免多重枚举
- 5600 避免 StringBuilder Append 导致的中间字符串分配 (i…
- 5555 在 GetFlags 中展开 Linq
- 5588 避免在 IsBestVerion 中装箱 HashSet 枚举器
- 5589 更新池实现以使用带锁的堆栈来避免...
- 5568 将 ResolvedDependencyKey 更改为结构
- 5553 避免 GetCompatibilityData 中的某些分配
- 5554 从元组切换到字典键的 ValueTuple
- 5552 避免为对 WithExtension 的调用创建捕获类
- 5556 从 ConcurrentDictionary 切换到带锁的字典,以避免...
- 5551 使用 string.Contains 而不是 IEnumerable.Contains
- 5550 避免装箱 List<T> 枚举器
- GenelleM
- NikolaMilosavljevic
- brianrob
- 5650 添加还原检测