upgrade all nuget packages that can be updated - #568
Merged
Conversation
drmoisan
enabled auto-merge
August 15, 2026 14:47
The NuGet upgrade in 8f30fd5 left three defects on this branch. CSharpier formatting: Visual Studio rewrote every app.config and packages.config in VS style (CRLF, single-line attributes, no trailing newline), which fails the format-check job. Reformatted the 33 affected files with the manifest-pinned CSharpier. All 33 are XML-semantically identical to their pre-format content (verified with XNode.DeepEquals); no package version or binding redirect changed. Stale analyzer paths: the upgrade advanced packages.config and the analyzer <Import>/<Error> lines to Meziantou.Analyzer 3.0.156 and Roslynator.Analyzers 4.16.0 but left the <Analyzer Include> item paths pointing at 3.0.138 / 4.15.0. Those directories are not restored from the new packages.config, so a cold build fails with CS0006 across 16 projects. CI masked this because its actions/cache restore-keys fallback still supplied the old package folders. Synced the 16 project files; the roslyn5.0 and roslyn4.7 subfolder layout is unchanged in the new package versions. Version-pinned test fixture: AsyncSerialization_Tests hard-coded packages\Microsoft.Graph.6.2.0 as its large-file fixture, which the upgrade to 6.5.0 moved, failing three tests for the same cache reason. The fixture lookup now discovers the version directory instead, with an ordinal sort so selection stays deterministic when several versions are present. Toolchain (all four stages green in one pass): - dotnet tool run csharpier check . -> clean, 10487 files - msbuild /t:Rebuild ... /p:EnableNETAnalyzers=true /p:EnforceCodeStyleInBuild=true -> 0 errors - msbuild /t:Rebuild ... /p:TreatWarningsAsErrors=true -> 0 errors - vstest.console.exe ... /EnableCodeCoverage -> 6437/6437 passed The 5 remaining build warnings are the System.Reactive 7.0 packages.config-unsupported notice, new from the upgrade and reported separately. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This was referenced Aug 15, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Microsoft.Extensions.*/System.*runtime family moving10.0.10 → 10.0.11(~35 packages); the largest single jump isMicrosoft.Graph 6.2.0 → 6.5.0.net481), and noCompile,None, orProjectReferenceitem changes — no source file is added, removed, or moved.+2695 / −7141) overstates the change: most of it is NuGet rewriting multi-line XML attributes onto single lines. This reformatting is what breaksformat-check— see Verification.Why
Routine dependency maintenance: take every package that has an available update, so the solution stays current on the runtime, Graph SDK, test platform, and analyzer packages rather than accumulating drift.
No PR Intent fields were supplied in the context bundle, and no issue is referenced by the commit, so the motivation above is inferred from the commit and the diff only.
What Changed
Runtime and BCL family —
10.0.10 → 10.0.11Microsoft.Bcl.AsyncInterfaces,Microsoft.Bcl.Cryptography,Microsoft.Bcl.Memory,Microsoft.Bcl.Numerics,Microsoft.Bcl.TimeProvider,Microsoft.Extensions.Configuration(+.Abstractions,.Binder,.EnvironmentVariables),Microsoft.Extensions.DependencyInjection(+.Abstractions),Microsoft.Extensions.Diagnostics.Abstractions,Microsoft.Extensions.FileProviders.Abstractions,Microsoft.Extensions.Hosting.Abstractions,Microsoft.Extensions.Logging(+.Abstractions,.Configuration),Microsoft.Extensions.Options(+.ConfigurationExtensions),Microsoft.Extensions.Primitives,System.CodeDom,System.Collections.Immutable,System.Diagnostics.DiagnosticSource,System.Drawing.Common,System.Formats.Asn1,System.IO.Pipelines,System.Memory.Data,System.Net.Http.WinHttpHandler,System.Numerics.Tensors,System.Reflection.Metadata,System.Security.Cryptography.ProtectedData,System.Text.Encoding.CodePages,System.Text.Encodings.Web,System.Text.Json,System.Threading.Channels,System.Threading.Tasks.Dataflow.Graph and Azure client stack
Microsoft.GraphAzure.CoreSystem.ClientModelSystem.Net.ServerSentEventsSystem.Net.ServerSentEventsis the only new package id. It arrives as a transitive dependency of the upgraded client stack and receives a binding redirect in all 16app.configfiles.Test and analyzer tooling
Microsoft.TestPlatform.ObjectModelMicrosoft.TestPlatform.AdapterUtilitiesMicrosoft.Extensions.TimeProvider.TestingSonarAnalyzer.CSharpMeziantou.AnalyzerRoslynator.AnalyzersAngleSharpFiles touched (50)
.csproj—<Reference>assembly versions,HintPathpackage-folder paths, and analyzer<Import>props/targets paths only.packages.config— package version attributes.app.config—bindingRedirect/assemblyIdentityentries.Architecture / How It Fits Together
Nothing structural changes. These are
packages.config-style (non-SDK, non-PackageReference) .NET Framework projects, so each upgrade touches three coordinated places per project:packages.configrecords the resolved package version..csprojcarries a matching<Reference>with the strong-name version and aHintPathinto..\packages\<Id>.<Version>\.app.configcarries abindingRedirectso the loaded assembly version resolves at runtime.All three stayed consistent in this change: no package id resolves to more than one version anywhere in the solution, so there is no split-version hazard between projects.
Verification
Completed (from CI on
8f30fd53)actionlintbuild-analyzers— build with analyzers and code style enforcementbuild-nullable— build with nullable warnings as errorsmstest-coverage— MSTest suite with coverageformat-check— CSharpierdotnet csharpier check .The three upgraded analyzer packages (Sonar, Meziantou, Roslynator) did not introduce new build-breaking diagnostics —
build-analyzersandbuild-nullableare both green — which is the main risk this kind of upgrade usually carries.The one failure
format-checkfails on 33 files — everyapp.configandpackages.configin the diff. The cause is purely stylistic: the repository formats these XML files with one attribute per line, and the NuGet package manager rewrote them with all attributes on a single line. CSharpier reportsWas not formattedfor 32 of them andThe file did not end with a single newlineforVBFunctions.Test\packages.config. No.csprojfile is flagged.Fix: run
dotnet csharpier .at the repo root and commit the result. That restores the repo's XML style without altering any package version.Recommended
Beyond the toolchain, a manual smoke test of the Outlook add-in is worth doing: binding-redirect changes are not exercised by the unit test suite, and this PR touches redirects in every project.
Backward Compatibility / Migration Notes
net481.Microsoft.Graph 6.2.0 → 6.5.0is the only multi-minor jump. It is within the same major version, so no breaking change is expected, but it is the upgrade most worth a second look.packages.configprojects, anyone with an existing working copy should restore packages before building, as the..\packages\<Id>.<Version>\folder names have changed.Risks and Mitigations
dependentAssemblyentries and ~394 redirects retargeted to10.0.0.11. Unit tests do not exercise the add-in's real assembly-load path.Mitigation: CI builds and the MSTest suite pass; smoke-test the add-in in Outlook before merging. Rollback is a single-commit revert.
Microsoft.Graph6.2.0 → 6.5.0 behavior drift. Three minor versions of the Graph SDK.Mitigation: review any Graph call sites for changed defaults; the build and test suite are green.
format-checkis red, so the PR is not mergeable under a required-checks policy.Mitigation: one
dotnet csharpier .commit, as above. No package version is affected.Mitigation: review with
git diff -wor read the tables above rather than the raw diff.Review Guide
The raw diff is large and almost entirely mechanical. Suggested order:
packages.configfiles — the source of truth for versions. Small and readable..csproj, e.g.UtilitiesCS/UtilitiesCS.csproj(the largest at 139 lines changed) — confirm<Reference>versions andHintPathvalues agree withpackages.config. The other 16 follow the same pattern.app.config, e.g.TaskMaster/app.config— confirm redirects match. Verified across all 16: 394 redirects added at10.0.0.11, 357 removed at10.0.0.10, 48 net-newdependentAssemblyblocks.git diff -wcollapses most of it; the multi-line-to-single-line attribute rewrite accounts for the bulk of the−7141deletions.Follow-ups
dotnet csharpier .pass to clearformat-check(required before merge).csharpiershould run automatically after a package operation — this reformatting churn will recur on every future upgrade PR.GitHub Auto-close
None — the context bundle records no verified or author-asserted autoclose issues, and the commit references no issue.