Fallout-build / Fallout-build/Fallout
Build fails on .NET SDK 10.0.400: NuGet.Packaging 6.14.3 conflicts with the SDK's NuGet 7.x
- Dominant language
- C#
- Stars
- 154
- Forks
- 19
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 15
Description
### Problem
`global.json` pins SDK `10.0.100` with `rollForward: latestMinor`, so CI now runs SDK 10.0.400. That SDK loads `NuGet.Frameworks 7.9.0.0` into MSBuild. `Directory.Packages.props:21` pins `NuGet.Packaging 6.14.3`, which loads `NuGet.Frameworks 6.14.3` into the same process. Every `./build.sh` run fails at `Compile`, so CI fails on `main` and on every PR.
### Outcome
`./build.sh Compile` succeeds on SDK 10.0.400, and the required `ubuntu-latest` check passes again.
### Acceptance criteria
- [ ] `NuGet.Packaging` is bumped to a 7.x version matching the NuGet version shipped by the supported SDK range.
- [ ] `./build.sh Compile` and `./build.sh Test` pass locally on SDK 10.0.400.
- [ ] `ubuntu-latest` is green on `main`.
### Notes
Nothing in the repository changed. The last green run used SDK 10.0.302. The first failing run used 10.0.400.
Error: `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](https://learn.microsoft.com/en-us/nuget/release-notes/nuget-7.0) only removed APIs that were already marked obsolete. This repo uses `NuspecReader`, `PackageArchiveReader`, `PackageFolderReader`, `VersionRange`, `NuGetVersion` and `NuGetFramework`. None of them are affected. Bumping to 7.9.0 was tested locally and compiles with 0 errors.
### Open questions
- NuGet 7.x dropped `netstandard2.0` support. `Fallout.Tooling` (`net10.0;netstandard2.0`) and `Fallout.Tooling.Generator` (`netstandard2.0`) then restore .NET Framework assets instead, which produces 35 NU1701 warnings. Do those `netstandard2.0` targets still need to exist?
- Pinning 6.14.3 for only the `netstandard2.0` target does not work while `CentralPackageTransitivePinningEnabled` is `true` (`Directory.Packages.props:4`).
Contributor guide
Research direction
Start with global.json and Directory.Packages.props lines 4 and 21 to understand the SDK roll-forward and central NuGet pin. Run ./build.sh Compile and ./build.sh Test with SDK 10.0.400, then verify the target frameworks and NU1701 warnings raised by the netstandard2.0 projects. Done means both commands pass and the ubuntu-latest check is green.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- build-system, ci-cd
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 68/100