diff --git a/src/NuGet.Core/NuGet.Build.Tasks/NuGet.Build.Tasks.Pack.targets b/src/NuGet.Core/NuGet.Build.Tasks/NuGet.Build.Tasks.Pack.targets index 286bba8f09a..c614d55f8e3 100644 --- a/src/NuGet.Core/NuGet.Build.Tasks/NuGet.Build.Tasks.Pack.targets +++ b/src/NuGet.Core/NuGet.Build.Tasks/NuGet.Build.Tasks.Pack.targets @@ -339,8 +339,7 @@ Copyright (c) .NET Foundation. All rights reserved. Projects="@(_ProjectReferencesFromAssetsFile)" Targets="_GetProjectVersion" SkipNonexistentTargets="true" - SkipNonexistentProjects="true" - Properties="BuildProjectReferences=false;"> + SkipNonexistentProjects="true"> @@ -359,9 +358,21 @@ Copyright (c) .NET Foundation. All rights reserved. - <_ProjectsWithTFM Include="$(MSBuildProjectFullPath)" AdditionalProperties="TargetFramework=%(_TargetFrameworks.Identity)" /> - <_ProjectsWithTFMNoBuild Include="$(MSBuildProjectFullPath)" AdditionalProperties="TargetFramework=%(_TargetFrameworks.Identity);BuildProjectReferences=false" /> - + + <_ProjectsWithTFM Condition="'$(TargetFrameworks)' != ''" Include="$(MSBuildProjectFullPath)" AdditionalProperties="TargetFramework=%(_TargetFrameworks.Identity)" /> + + <_ProjectsWithTFM Condition="'$(TargetFrameworks)' == ''" Include="$(MSBuildProjectFullPath)" /> + + + <_FrameworkAssemblyReferenceProjects Include="@(_ProjectsWithTFM)" Condition="'$(NoBuild)' != 'true'" /> + <_FrameworkAssemblyReferenceProjects Include="@(_ProjectsWithTFM)" Condition="'$(NoBuild)' == 'true'"> + %(_ProjectsWithTFM.AdditionalProperties);BuildProjectReferences=false + @@ -408,7 +419,7 @@ Copyright (c) .NET Foundation. All rights reserved. @@ -418,7 +429,7 @@ Copyright (c) .NET Foundation. All rights reserved. diff --git a/test/NuGet.Core.FuncTests/Dotnet.Integration.Test/PackCommandTests.cs b/test/NuGet.Core.FuncTests/Dotnet.Integration.Test/PackCommandTests.cs index 9ef19bc460b..8265d2160de 100644 --- a/test/NuGet.Core.FuncTests/Dotnet.Integration.Test/PackCommandTests.cs +++ b/test/NuGet.Core.FuncTests/Dotnet.Integration.Test/PackCommandTests.cs @@ -2692,7 +2692,8 @@ public class ExtensionMethods var nuspecReader = nupkgReader.NuspecReader; // Validate the assets. var srcItems = nupkgReader.GetFiles("src").ToArray(); - Assert.Equal(4, srcItems.Length); + + // At least the user-authored source files are always included. Assert.Contains("src/ClassLibrary1/ClassLibrary1.csproj", srcItems); Assert.Contains("src/ClassLibrary1/Class1.cs", srcItems); Assert.Contains("src/ClassLibrary1/Extensions/ExtensionMethods.cs", srcItems);