From 3cafa856e7fc887a55b205245ea6a0fef7575207 Mon Sep 17 00:00:00 2001 From: Tomas Grosup Date: Fri, 15 May 2026 14:52:00 +0200 Subject: [PATCH 1/2] Add missing Microsoft.IO.Redist PackageReference to Framework MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit After #13364 and #13370 moved FileSystem code (WindowsFileSystem, ManagedFileSystem, FileUtilities, FrameworkLocationHelper) into Microsoft.Build.Framework, the assembly acquired a runtime dependency on Microsoft.IO.Redist under net472. The compile-time reference was satisfied by the frozen-version hack in Directory.Build.targets, but no PackageReference existed, so the NuGet package never declared the dependency — breaking any out-of-process host that deploys Framework without IO.Redist (e.g. fsc.exe). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- src/Framework/Microsoft.Build.Framework.csproj | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Framework/Microsoft.Build.Framework.csproj b/src/Framework/Microsoft.Build.Framework.csproj index cd5bca96cc6..6692a795c7f 100644 --- a/src/Framework/Microsoft.Build.Framework.csproj +++ b/src/Framework/Microsoft.Build.Framework.csproj @@ -36,6 +36,10 @@ + + + + From b4793b10f15977bb35bca248431ce0e58f5c7011 Mon Sep 17 00:00:00 2001 From: Rainer Sigwald Date: Wed, 20 May 2026 16:34:12 -0500 Subject: [PATCH 2/2] Remove now-transitive Microsoft.IO.Redist PackageReferences Microsoft.Build.Framework now owns the direct PackageReference, so all consumers (Build, Utilities, Tasks, MSBuild, and their tests) get Microsoft.IO.Redist transitively through their ProjectReference to Framework. Drop the redundant direct references. Also removes the dead 'PackageReference Update=Microsoft.IO.Redist PrivateAssets=all' line in Utilities.csproj's .NETStandard ItemGroup, since FeatureMSIORedist is only set on .NETFramework. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../Microsoft.Build.Engine.OM.UnitTests.csproj | 1 - src/Build/Microsoft.Build.csproj | 2 -- .../Microsoft.Build.Framework.UnitTests.csproj | 1 - .../Microsoft.Build.EndToEnd.Tests.csproj | 1 - src/MSBuild/MSBuild.csproj | 1 - src/Tasks/Microsoft.Build.Tasks.csproj | 1 - src/Utilities/Microsoft.Build.Utilities.csproj | 2 -- 7 files changed, 9 deletions(-) diff --git a/src/Build.OM.UnitTests/Microsoft.Build.Engine.OM.UnitTests.csproj b/src/Build.OM.UnitTests/Microsoft.Build.Engine.OM.UnitTests.csproj index 41e769b7a8b..abf20232a34 100644 --- a/src/Build.OM.UnitTests/Microsoft.Build.Engine.OM.UnitTests.csproj +++ b/src/Build.OM.UnitTests/Microsoft.Build.Engine.OM.UnitTests.csproj @@ -18,7 +18,6 @@ - diff --git a/src/Build/Microsoft.Build.csproj b/src/Build/Microsoft.Build.csproj index 7f3066e974b..cd397b4a02b 100644 --- a/src/Build/Microsoft.Build.csproj +++ b/src/Build/Microsoft.Build.csproj @@ -34,8 +34,6 @@ - - diff --git a/src/Framework.UnitTests/Microsoft.Build.Framework.UnitTests.csproj b/src/Framework.UnitTests/Microsoft.Build.Framework.UnitTests.csproj index 878a0e7d8c7..b2196587455 100644 --- a/src/Framework.UnitTests/Microsoft.Build.Framework.UnitTests.csproj +++ b/src/Framework.UnitTests/Microsoft.Build.Framework.UnitTests.csproj @@ -9,7 +9,6 @@ - diff --git a/src/MSBuild.EndToEnd.Tests/Microsoft.Build.EndToEnd.Tests.csproj b/src/MSBuild.EndToEnd.Tests/Microsoft.Build.EndToEnd.Tests.csproj index ba5daca9122..114907f7b5b 100644 --- a/src/MSBuild.EndToEnd.Tests/Microsoft.Build.EndToEnd.Tests.csproj +++ b/src/MSBuild.EndToEnd.Tests/Microsoft.Build.EndToEnd.Tests.csproj @@ -10,7 +10,6 @@ - diff --git a/src/MSBuild/MSBuild.csproj b/src/MSBuild/MSBuild.csproj index 57118f5bc1d..26a8c961586 100644 --- a/src/MSBuild/MSBuild.csproj +++ b/src/MSBuild/MSBuild.csproj @@ -138,7 +138,6 @@ or when a .NET 10 SDK is used (NuGet Package Pruning eliminates netstandard1.x dependencies). --> - -