Centralize NuGet package versions with Directory.Packages.props#1937
Merged
Conversation
Enable ManagePackageVersionsCentrally and move all PackageVersion declarations to Directory.Packages.props. Individual csproj files no longer specify Version on PackageReference elements. Pre-declare System.Text.Json, System.CommandLine, and System.IO.Pipes.AccessControl for upcoming migration phases. Assisted-by: Claude Opus 4.6 Signed-off-by: Tyrie Vella <tyvella@microsoft.com>
This was referenced Apr 8, 2026
Merged
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.
Centralize NuGet package versions with Directory.Packages.props
Summary
Enable NuGet Central Package Management across all 18 C# projects. This is the first PR in a phased migration toward .NET 10 with NativeAOT compilation.
What changed
Directory.Packages.props— single source of truth for all 20 NuGet package versions, plus 3 pre-declared packages for upcoming phases.csprojfiles — removedVersion=from every<PackageReference>element. Non-version attributes (ExcludeAssets,PrivateAssets,GeneratePathProperty) are preserved.Review guide
Directory.Packages.props— verify each<PackageVersion>matches theVersion=that was removed from the corresponding csprojVersion=was removed, nothing elseVerification
dotnet restore GVFS.sln— all 18 projects restore successfullydotnet build GVFS.sln— all C# projects compile (C++ vcxproj require MSBuild, unchanged)Context
Part of the .NET 10 NativeAOT migration. This foundational change enables subsequent phases (JSON, CLI, ProjFS, framework retarget) to modify package references without conflicting on version numbers.