Bump NuGet.Packaging to 7.9.0 to match the SDK's NuGet version - #639
Bump NuGet.Packaging to 7.9.0 to match the SDK's NuGet version#639ChrisonSimtian wants to merge 1 commit into
Conversation
The .NET 10 SDK loads NuGet.Frameworks 7.9.0.0 into MSBuild. The pinned NuGet.Packaging 6.14.3 loaded NuGet.Frameworks 6.14.3 into the same build-host process, so every ./build.sh run failed at Compile once CI moved from SDK 10.0.302 to 10.0.400: InvalidProjectFileException: The expression "[MSBuild]::GetTargetFrameworkIdentifier(net10.0)" cannot be evaluated. Could not load file or assembly 'NuGet.Frameworks, Version=7.9.0.0'. NuGet 7.0 only removed APIs that were already obsolete. This repo uses NuspecReader, PackageArchiveReader, PackageFolderReader, VersionRange, NuGetVersion and NuGetFramework, none of which changed. NuGet 7.x drops netstandard2.0. Fallout.Tooling and Fallout.Tooling.Generator still target it, so those legs now restore .NET Framework assets and emit NU1701. That is a warning, not an error, and is tracked in the issue. Closes Fallout-build#638 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Note for whoever cuts the next major and merges this. #640 pins the SDK to the When this PR lands as part of a major release, two things need doing:
|
global.json requested 10.0.100 with rollForward: latestMinor, so CI took whatever SDK the runner image shipped. The image moved to 10.0.400, which loads NuGet.Frameworks 7.9.0.0 into MSBuild. That conflicts with the pinned NuGet.Packaging 6.14.3 and breaks every ./build.sh run at Compile. The last green run used 10.0.302, so this pins to that feature band. latestPatch still accepts 10.0.3xx patches but will not jump to 10.0.4xx. This is a temporary measure. The real fix is bumping NuGet.Packaging to 7.x (#639), which is a breaking change held for the next major because NuGet 7.x drops netstandard2.0. Until that lands, the pin keeps CI green and stops the runner image from changing the toolchain without us noticing. Contributors need a 10.0.3xx SDK installed. CI installs it automatically via actions/setup-dotnet reading global.json. Part of #638 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Does this mean, that building a .NET Framework app stops working or does this only affect the build project? If former is true: This would then potentially lock out quite a number of users (including me for one project: build project targets .NET10.0 and builds a .NET Framework 4.8 app) |
Held for the next major. This PR is labelled
target/vNextand stays open until we cut that release. See the direction comment on #638.The .NET 10 SDK loads
NuGet.Frameworks 7.9.0.0into MSBuild, but the pinnedNuGet.Packaging 6.14.3loadedNuGet.Frameworks 6.14.3into the same build-host process, so every./build.shrun fails atCompileonce CI moved from SDK 10.0.302 to 10.0.400.What changed
NuGet.Packaging6.14.3 → 7.9.0 inDirectory.Packages.props. One line, no source changes.Why
NuGet 7.0 only removed APIs that were already marked obsolete. This repo uses
NuspecReader,PackageArchiveReader,PackageFolderReader,VersionRange,NuGetVersionandNuGetFramework. None of them changed.Nothing in the repository caused the break.
global.jsonpins SDK10.0.100withrollForward: latestMinor, so CI takes whatever the runner image ships.Verification
./build.sh Compilefails onmainand succeeds on this branch, on SDK 10.0.400.Fallout.Migrate.Analyzers.Specs: 14/14 pass.Fallout.Build.Specs: 239/242 pass. The 3GitRepositoryWorktreeSpecsfailures are pre-existing and environment-specific — they assert on the git remote identity and fail identically at 6.14.3 in a fork checkout.Note on the netstandard2.0 targets
Fallout.Tooling(net10.0;netstandard2.0) andFallout.Tooling.Generator(netstandard2.0) currently still declare those targets. With this bump they restore .NET Framework assets instead and emit NU1701 warnings. Actually removing the targets is separate work for the same major.Part of #638