NuGet 6.7 Release Notes

NuGet distribution vehicles:

NuGet version Available in Visual Studio version Available in .NET SDK(s)
6.7 Visual Studio 2022 version 17.7 7.0.4001
6.7.1 Visual Studio 2022 version 17.7 7.0.4061

1 Installed with Visual Studio 2022 with.NET Core workload

Summary: What's New in 6.7.1

  • [Security]: Microsoft Security Advisory CVE-2024-0057 | NuGet Client Security Feature bypass Vulnerability - #12653

Summary: What's New in 6.7

  • Package Source Mapping status for selected package in Details Pane - #12586

  • Add VulnerabilityInfo APIs into NuGet.Protocol - #12518

  • Signing: raise actionable message on Linux if verification results in untrusted failure - #12459

  • [Feature]: Show which package versions are vulnerable in the VS PMUI package details pane version dropdown - #11127

Issues fixed in this release

DCRs:

  • There are no visual indicators for the Package Source Mapping status in details pane - #12609

  • VS Options shortcut from PMUI for PackageSourceMappings doesn't scroll to or select the Package - #12608

  • Install/Update buttons are enabled in Details Pane when the PackageSourceMapping is not found - #12607

  • Add nullable annotations to NuGet.Frameworks - #12570

  • NuGet should use a different property for the platform version for C++/CLI - #12521

  • NuGet should use HttpClientHandler.PreAuthentication to reduce HTTP 401's - #12514

Bugs:

  • Create SingleFileProvider and use it for content files - #12706

  • Restore task dumps stack because TaskCanceledException should be OperationCanceledException - #12700

  • Improve nuget.exe restore error message when passing file globs - #12691

  • NuGet: LockFileUtils.GetLockFileItems boxing enumerator - #12684

  • Preview Window needs some strings reworded and margins adjusted - #12681

  • PackageSpecificWarningProperties classes do redundant collection lookups - #12678

  • Specify SelectionCriteria list capacity correctly - #12667

  • Avoid value lookup in foreach loop over dictionary's keys - #12666

  • NuGet: VersionRangeFormatter.GetNormalizedString bypassing StringBuilderCache via use of string.format - #12664

  • NuGet: LockFileFormat.ReadTargetLibrary using string.split on a simple pattern - #12663

  • Performance: Don't allocate as many Task instances - #12659

  • Replace unreliable assembly location code with reliable one - #12650

  • PackageSpec should use an empty RuntimeGraph instead of a new one - #12649

  • TargetFrameworkInformation.Clone calls ToDictionary on a type that is already a dictionary, TargetFrameworkInformation.Clone resizes a dictionary it already knows the destination size - #12648

  • PackageSpecReferenceDependencyProvider.GetLibrary unnecessarily resizes a List<T> that it doesn't even need - #12647

  • ResolverUtility.FindLibraryCachedAsync should use a struct as lookup - #12646

  • ContentItemCollection.PopulateItemGroups unnecessarily causing resizes of List<T>, ContentItemCollection.PopulateItemGroups boxing List<T>.Enumerator - #12645

  • PackageSpec.Clone and LibraryDependency.Clone overwrite collections created by their constructors. - #12642

  • RestoreOperationLogger.ReportProgressAsync repeatedly requests UI thread time - #12640

  • Avoid repeated Enum.ToString() in PackageSpecWriter.SetDependencies - #12638

  • ETW events should use default '/' instead of '_' - #12631

  • Parsing NuGetVersion causes significant GC pressure - #12630

  • The vulnerable label doesn’t show in the “version” dropdown box of “Browse” tab when searching for vulnerable packages - #12623

  • nuget restore fails for solution filters not in same directory as the solution it references. - #12562

  • VersionRangeFormatter should use StringBuilderPool - #12551

  • Reduce allocations in VirtualFileInfo.Name - #12550

  • Reduce allocations when getting hash code of LibraryModel.LibraryRange - #12549

  • NuGet.Build.Tasks.Console should roll forward to newer runtimes - #12528

  • SourceRepository.GetResource throws if type is not an exact match - #12455

  • [Bug]: Disable the option to update version when using VersionOverride in CPM - #12230

  • [Bug]: dotnet nuget push not detecting apikey for 3rd party symbol server - #11846

  • X-NuGet-Warning doesn't work when using proxy due to missing ServerWarningLogHandler - #5004

List of commits in this release

Community contributions

Thank you to all the contributors who helped make this NuGet release awesome!

  • danmoseley
    • 5276 fix crash on cancel in Restore task
  • oleksandr-didyk
    • 5196 add review comment to sb files
  • drewnoakes
    • 5200 Reduce allocations in ContentItemCollection
  • Erarndt
    • 5202 Avoid allocations while parsing NuGetVersion from strings
  • jerhon
    • 5197 Fix issue with solution filters not restoring when in different folder than referenced solution
  • NikolaMilosavljevic
    • 5228 Add System.Security.Cryptography.Xml dependency
  • DevPaulLiu
    • 5206 Use default '/' split symbol in ETW events.
  • drewnoakes
    • 5201 Reduce allocations in PackageSpecReferenceDependencyProvider
  • drewnoakes
    • 5199 Reduce allocations in TargetFrameworkInformation.Clone
  • Erarndt
    • 5217 Ensure only one logging task is active at a time
  • Erarndt
    • 5219 Update PackageSpec.Clone and LibraryDependency.Clone to avoid allocations
  • Erarndt
    • 5215 Add AsString() for LibraryDependencyTarget and LibraryIncludeFlags
  • NikolaMilosavljevic
    • 5207 Add dependencies for PVP flow
  • NikolaMilosavljevic
    • 5193 Target net8.0 for source-build
  • mthalman
    • 5180 Exclude WPF projects from source-build
  • NikolaMilosavljevic
    • 5190 Enable source-build pre-built detection
  • drewnoakes
    • 5146 Show diagnostic beneath unresolved package/project reference in Solution Explorer
  • 0xced
    • 5021 Log warnings from server also when using an http proxy (X-NuGet-Warning)
  • jwfx
    • 5122 Fall back to using API key also for pushing symbol packages if nothing else was specified as parameter or config
  • MichaelSimons
    • 5132 Remove MinimalTargetFrameworksExeSigning from MinimalTargetFrameworksExeSigning in source-build
  • dfederm
    • 5125 Add RollForward to NuGet.Build.Tasks.Console
  • atamagaii
    • 5107 Add missing RegistrationsBaseUrls to prevent exceptions when loading valid Service Indexes.