From 0eab965113693819cec3eb4a39182f25e1f2038d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 22 Oct 2025 20:26:57 +0000 Subject: [PATCH 1/3] Add exclusion for PublishDir in DefaultItemExcludes Co-authored-by: baronfel <573979+baronfel@users.noreply.github.com> --- .../Microsoft.NET.Sdk.DefaultItems.targets | 6 ++++ .../GivenThereAreDefaultItems.cs | 29 +++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.DefaultItems.targets b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.DefaultItems.targets index 8d04b5e7c5f4..63a0585dd28a 100644 --- a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.DefaultItems.targets +++ b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.DefaultItems.targets @@ -51,6 +51,12 @@ Copyright (c) .NET Foundation. All rights reserved. $(DefaultExcludesInProjectFolder);$(DefaultItemExcludesInProjectFolder);**/.*/** + + + $(DefaultItemExcludes);$(PublishDir)/** + + diff --git a/test/Microsoft.NET.Build.Tests/GivenThereAreDefaultItems.cs b/test/Microsoft.NET.Build.Tests/GivenThereAreDefaultItems.cs index 958b7cd48f66..d9fb34f84b41 100644 --- a/test/Microsoft.NET.Build.Tests/GivenThereAreDefaultItems.cs +++ b/test/Microsoft.NET.Build.Tests/GivenThereAreDefaultItems.cs @@ -854,6 +854,35 @@ public void It_does_not_include_Windows_App_SDK_items_if_Windows_App_SDK_is_abse .BeEmpty(); } + [Fact] + public void It_excludes_items_in_publish_directory() + { + Action setup = getValuesCommand => + { + // Create a PublishDir with a JSON file (simulating a previous publish) + string publishDir = Path.Combine(getValuesCommand.ProjectRootPath, "artifacts", "TestLibrary"); + WriteFile(Path.Combine(publishDir, "appsettings.json"), + "{ \"Setting\": \"Value\" }"); + + WriteFile(Path.Combine(getValuesCommand.ProjectRootPath, "Code", "Class1.cs"), + "public class Class1 {}"); + }; + + Action projectChanges = project => + { + var ns = project.Root.Name.Namespace; + + var propertyGroup = new XElement(ns + "PropertyGroup"); + project.Root.Add(propertyGroup); + propertyGroup.Add(new XElement(ns + "PublishDir", "artifacts\\TestLibrary\\")); + }; + + var noneItems = GivenThatWeWantToBuildALibrary.GetValuesFromTestLibrary(Log, _testAssetsManager, "None", setup, projectChanges: projectChanges); + + // The appsettings.json file in the PublishDir should not be included in None items + noneItems.Should().NotContain(item => item.Contains("appsettings.json")); + } + void RemoveGeneratedCompileItems(List compileItems) { // Remove auto-generated compile items. From c3b459215b9d411c06f2319305b304c61b1d615e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 22 Oct 2025 20:41:03 +0000 Subject: [PATCH 2/3] Move PublishDir exclusion into main PropertyGroup with other output paths Co-authored-by: baronfel <573979+baronfel@users.noreply.github.com> --- .../targets/Microsoft.NET.Sdk.DefaultItems.targets | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.DefaultItems.targets b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.DefaultItems.targets index 63a0585dd28a..c642309e69cb 100644 --- a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.DefaultItems.targets +++ b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.DefaultItems.targets @@ -35,6 +35,9 @@ Copyright (c) .NET Foundation. All rights reserved. $(DefaultItemExcludes);$(BaseOutputPath)/** $(DefaultItemExcludes);$(BaseIntermediateOutputPath)/** + + $(DefaultItemExcludes);$(PublishDir)/** $(DefaultItemExcludes);**/*.user @@ -51,12 +54,6 @@ Copyright (c) .NET Foundation. All rights reserved. $(DefaultExcludesInProjectFolder);$(DefaultItemExcludesInProjectFolder);**/.*/** - - - $(DefaultItemExcludes);$(PublishDir)/** - - From d33b239812d731345a6312b7f8866bd04f76e4fe Mon Sep 17 00:00:00 2001 From: Chet Husk Date: Wed, 22 Oct 2025 15:46:01 -0500 Subject: [PATCH 3/3] Apply suggestion from @baronfel --- .../targets/Microsoft.NET.Sdk.DefaultItems.targets | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.DefaultItems.targets b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.DefaultItems.targets index c642309e69cb..5d73e4d03ce3 100644 --- a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.DefaultItems.targets +++ b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.DefaultItems.targets @@ -35,8 +35,9 @@ Copyright (c) .NET Foundation. All rights reserved. $(DefaultItemExcludes);$(BaseOutputPath)/** $(DefaultItemExcludes);$(BaseIntermediateOutputPath)/** - + $(DefaultItemExcludes);$(PublishDir)/**