From 425872b7013291ab1a4cd488f468ffe74c19f7e7 Mon Sep 17 00:00:00 2001 From: Chrison Simtian Date: Sun, 16 Aug 2026 22:49:00 +1200 Subject: [PATCH 1/2] Bump NuGet.Packaging to 7.9.0 to match the SDK's NuGet version 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 #638 Co-Authored-By: Claude Opus 5 (1M context) --- Directory.Packages.props | 2 +- src/Fallout.SourceGenerators/Fallout.SourceGenerators.csproj | 2 +- src/Fallout.Tooling/Fallout.Tooling.csproj | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 5331114ef..982f1b8f5 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -18,7 +18,7 @@ - + diff --git a/src/Fallout.SourceGenerators/Fallout.SourceGenerators.csproj b/src/Fallout.SourceGenerators/Fallout.SourceGenerators.csproj index 4bb79c6b1..fbee6a1d6 100644 --- a/src/Fallout.SourceGenerators/Fallout.SourceGenerators.csproj +++ b/src/Fallout.SourceGenerators/Fallout.SourceGenerators.csproj @@ -4,7 +4,7 @@ netstandard2.0 false false - $(NoWarn);NU5128;CS0649 + $(NoWarn);NU5128;CS0649;NU1701 false diff --git a/src/Fallout.Tooling/Fallout.Tooling.csproj b/src/Fallout.Tooling/Fallout.Tooling.csproj index 2200aa636..a01afa3f0 100644 --- a/src/Fallout.Tooling/Fallout.Tooling.csproj +++ b/src/Fallout.Tooling/Fallout.Tooling.csproj @@ -2,6 +2,7 @@ net10.0;netstandard2.0 + $(NoWarn);NU1701 From accd97c12e0977095313ece7561a53968d7130cd Mon Sep 17 00:00:00 2001 From: Dennis Doomen Date: Sat, 19 Sep 2026 16:01:59 +0200 Subject: [PATCH 2/2] Pin NuGet.Protocol and NuGet.Resolver to 7.9.0 to match NuGet.Packaging Bumping NuGet.Packaging to 7.9.0 let central transitive pinning carry NuGet.Common, NuGet.Configuration, NuGet.Frameworks, and NuGet.Versioning up to 7.9.0 too, since they're dependencies of NuGet.Packaging. NuGet.Protocol and NuGet.Resolver sit on the other side of that dependency edge (they depend on NuGet.Packaging, not the reverse), so transitive pinning left them at the 6.3.4 pulled in by Microsoft.CodeAnalysis.Analyzer.Testing 1.1.2. That mismatch broke every Fallout.Migrate.Analyzers.Specs test at runtime: NuGet.Protocol 6.3.4 calls NuGet.Frameworks.NuGetFrameworkFullComparer's constructor expecting its old accessibility, throws MethodAccessException against the loaded 7.9.0 build, and Microsoft.CodeAnalysis.Testing's ReferenceAssemblies helper (which resolves packages over NuGet.Protocol at test time) fails before any test body runs. Microsoft.CodeAnalysis.CSharp.Analyzer.Testing.XUnit has no release past 1.1.2, and that version hard-pins Microsoft.CodeAnalysis.Analyzer.Testing to exactly 1.1.2 ([1.1.2, 1.1.2]), so there's no newer version to pick up a matching NuGet.Protocol. Pinning it centrally alongside NuGet.Packaging is the only lever available. Co-Authored-By: Claude Sonnet 5 --- Directory.Packages.props | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Directory.Packages.props b/Directory.Packages.props index 982f1b8f5..137e05f06 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -19,6 +19,8 @@ + +