Make it so the artifacts folders register files for cleanup - #49595
Conversation
There was a problem hiding this comment.
Pull Request Overview
This PR updates the SDK to properly register files within artifacts folders for cleanup and provides accompanying tests.
- Adds a test in ArtifactsOutputPathTests.cs to verify that published files (e.g., hostfxr.dll) are correctly cleaned up when building in Release configuration.
- Updates the Microsoft.NET.DefaultOutputPaths.targets to include a new target _TrackFileWritesShareableUnderArtifactsPath ensuring file writes under both OutputPath and IntermediateOutputPath are tracked for cleanup.
Reviewed Changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| test/Microsoft.NET.Build.Tests/ArtifactsOutputPathTests.cs | Adds tests to verify cleanup behavior for artifacts folders |
| src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.DefaultOutputPaths.targets | Enhances cleanup logic by tracking file writes under artifacts output directories |
|
Instead of duplicating some MSBuild logic, would it make sense to update MSBuild so that (with an opt-in from the SDK) it would also look under the output and intermediate output paths in addition to the project directory? |
|
That's also very reasonable, and much more clean. I can set that up for sure. |
|
When dotnet/msbuild#12096 is merged, I'll update this to just set the new property (and keep the existing tests). |
|
The change has flowed to the VMR this morning, so the next VMR->SDK flow should let us merge this. |
a2c6fe6 to
d266bc4
Compare
|
Once #49740 merges this can be rebased and the tests should light up. |
d266bc4 to
6f71ec0
Compare
6f71ec0 to
d9f4a44
Compare

Fixes #49582
The SDK knows that it's opting into Artifacts Path, and so the SDK can coordinate correcting the cleanup behavior for ArtifactsPath.