Skip to content

Remove net472 containers#53547

Open
YuliiaKovalova wants to merge 5 commits intorelease/10.0.3xxfrom
dev/ykovalova/remove_net472_containers
Open

Remove net472 containers#53547
YuliiaKovalova wants to merge 5 commits intorelease/10.0.3xxfrom
dev/ykovalova/remove_net472_containers

Conversation

@YuliiaKovalova
Copy link
Member

@YuliiaKovalova YuliiaKovalova commented Mar 20, 2026

Summary

Remove the net472 target from the Containers SDK (Microsoft.NET.Build.Containers), keeping only the .NET Core ($(SdkTargetFramework)) target.

The net472 build existed to support Visual Studio's Full-Framework MSBuild (MSBuildRuntimeType == Full). Now that VS uses .NET Runtime with HostObject support for container operations, the net472 target and all this infrastructure is no longer needed.

Fixes

dotnet/msbuild#11333

@github-actions github-actions bot added the Area-Containers Related to dotnet SDK containers functionality label Mar 20, 2026
@YuliiaKovalova YuliiaKovalova changed the base branch from main to release/10.0.3xx March 23, 2026 12:35
@YuliiaKovalova YuliiaKovalova changed the title remove net472 containers Remove net472 containers Mar 23, 2026
@YuliiaKovalova YuliiaKovalova marked this pull request as ready for review March 23, 2026 17:14
@YuliiaKovalova YuliiaKovalova requested a review from a team as a code owner March 23, 2026 17:14
Copilot AI review requested due to automatic review settings March 23, 2026 17:14
@YuliiaKovalova
Copy link
Member Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR removes the net472 target and associated packaging/test/layout infrastructure from the Containers SDK (Microsoft.NET.Build.Containers), aligning with the move away from Full Framework MSBuild for VS container operations.

Changes:

  • Drop multi-targeting ($(SdkTargetFramework);net472) for Microsoft.NET.Build.Containers and related integration tests, removing net472-only source/test shims.
  • Remove net472 task publishing/packaging outputs (layout + nupkg content) and update package content expectations accordingly.
  • Update the shipped .props to always point at the .NET (net10.0) task implementation.

Reviewed changes

Copilot reviewed 15 out of 15 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
test/UnitTests.proj Stops including Containers integration tests in the TestFullMSBuild/net472 run.
test/Microsoft.NET.Build.Containers.IntegrationTests/PackageTests.cs Updates dependency and nupkg content assertions to remove tasks/net472 expectations.
test/Microsoft.NET.Build.Containers.IntegrationTests/Microsoft.NET.Build.Containers.IntegrationTests.csproj Removes net472 target and related conditional compilation setup.
test/Microsoft.NET.Build.Containers.IntegrationTests/FullFramework/CreateNewImageToolTaskTests.cs Deletes Full Framework–specific tests for the removed ToolTask-based implementation.
src/Layout/redist/targets/GenerateLayout.targets Removes publishing of net472 task assets into the redist layout.
src/Layout/redist/targets/Crossgen.targets Updates comment to reflect removal of net472 components.
src/Containers/packaging/package.csproj Removes net472 packaging path and dependency harvesting for net472 tasks.
src/Containers/packaging/build/Microsoft.NET.Build.Containers.props Removes MSBuild runtime-based TFM selection; uses only net10.0 tasks and updates UsingTask declarations.
src/Containers/Microsoft.NET.Build.Containers/net472Definitions.cs Deletes net472-only polyfills (IsExternalInit, NotNullWhenAttribute).
src/Containers/Microsoft.NET.Build.Containers/Tasks/CreateNewImageToolTask.cs Deletes the net472 ToolTask-based shim implementation.
src/Containers/Microsoft.NET.Build.Containers/Tasks/ComputeDotnetBaseImageAndTag.cs Removes now-unused NETFRAMEWORK-only using directives.
src/Containers/Microsoft.NET.Build.Containers/PublicAPI/net472/PublicAPI.Unshipped.txt Removes net472 public API baseline.
src/Containers/Microsoft.NET.Build.Containers/PublicAPI/net472/PublicAPI.Shipped.txt Removes net472 public API baseline header.
src/Containers/Microsoft.NET.Build.Containers/Microsoft.NET.Build.Containers.csproj Removes net472 TFM and all net472-specific compile/package reference conditionals.
src/Containers/Microsoft.NET.Build.Containers/ContainerHelpers.cs Removes NETFRAMEWORK/NET conditional usings now that net472 is gone.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area-Containers Related to dotnet SDK containers functionality

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants