From 2582f8c480ce099b41b936528eee53ffb77e1c2c Mon Sep 17 00:00:00 2001 From: Nikolche Kolev Date: Thu, 2 Oct 2025 10:02:40 -0700 Subject: [PATCH 1/2] Disable pruning by default --- .../NuGet.Build.Tasks/NuGet.targets | 21 +------ .../NuGetPropertyDefaultsTests.cs | 56 +------------------ 2 files changed, 3 insertions(+), 74 deletions(-) diff --git a/src/NuGet.Core/NuGet.Build.Tasks/NuGet.targets b/src/NuGet.Core/NuGet.Build.Tasks/NuGet.targets index d9d8d18e84e..fba38c25fee 100644 --- a/src/NuGet.Core/NuGet.Build.Tasks/NuGet.targets +++ b/src/NuGet.Core/NuGet.Build.Tasks/NuGet.targets @@ -80,26 +80,9 @@ Copyright (c) .NET Foundation. All rights reserved. direct - + - - true - false - true - false + false diff --git a/test/NuGet.Core.FuncTests/Msbuild.Integration.Test/NuGetPropertyDefaultsTests.cs b/test/NuGet.Core.FuncTests/Msbuild.Integration.Test/NuGetPropertyDefaultsTests.cs index 8bc68e7b02e..540313a5b03 100644 --- a/test/NuGet.Core.FuncTests/Msbuild.Integration.Test/NuGetPropertyDefaultsTests.cs +++ b/test/NuGet.Core.FuncTests/Msbuild.Integration.Test/NuGetPropertyDefaultsTests.cs @@ -55,7 +55,7 @@ public void NuGetAuditModeDefaults(string SdkAnalysisLevel, string UsingMicrosof [Theory] // .NET (Core) SDK 10.0 - [InlineData("10.0.100", "net10.0", "true")] + [InlineData("10.0.100", "net10.0", "false")] [InlineData("10.0.100", "net9.0", "false")] [InlineData("10.0.100", "net8.0", "false")] [InlineData("10.0.100", "net7.0", "false")] @@ -106,59 +106,5 @@ public void PackagePruningDefaults_RestoreEnablePackagePruning(string SdkAnalysi // Assert resultText.Should().Be(expected); } - - [Theory] - // .NET (Core) SDK 10.0 - [InlineData("10.0.100", "net10.0", "true")] - [InlineData("10.0.100", "net9.0", "false")] - [InlineData("10.0.100", "net8.0", "false")] - [InlineData("10.0.100", "net7.0", "false")] - [InlineData("10.0.100", "net6.0", "false")] - [InlineData("10.0.100", "net5.0", "false")] - [InlineData("10.0.100", "netcoreapp3.1", "false")] - [InlineData("10.0.100", "netcoreapp3.0", "false")] - [InlineData("10.0.100", "netcoreapp2.2", "false")] - [InlineData("10.0.100", "netcoreapp2.1", "false")] - [InlineData("10.0.100", "netcoreapp2.0", "false")] - [InlineData("10.0.100", "netcoreapp1.1", "false")] - [InlineData("10.0.100", "netcoreapp1.0", "false")] - // .NET Standard SDK 10.0 - [InlineData("10.0.100", "netstandard2.1", "false")] - [InlineData("10.0.100", "netstandard2.0", "false")] - [InlineData("10.0.100", "netstandard1.6", "false")] - // .NET Framework SDK 10.0 - [InlineData("10.0.100", "net48", "false")] - // SDK 10.0 - [InlineData("9.0.100", "net10.0", "false")] - [InlineData("9.0.100", "net9.0", "false")] - [InlineData("9.0.100", "net8.0", "false")] - [InlineData("9.0.100", "netstandard2.1", "false")] - [InlineData("9.0.100", "netstandard2.0", "false")] - public void PackagePruningDefaults_RestorePackagePruningDefault(string SdkAnalysisLevel, string targetFramework, string expected) - { - // Arrange - using var testDirectory = TestDirectory.Create(); - - string projectText = @" - -"; - var projectFilePath = Path.Combine(testDirectory, "my.proj"); - File.WriteAllText(projectFilePath, projectText); - - string args = $"{projectFilePath} -getProperty:RestorePackagePruningDefault"; - if (!string.IsNullOrEmpty(SdkAnalysisLevel)) args += $" -p:SdkAnalysisLevel={SdkAnalysisLevel}"; - - var framework = NuGetFramework.Parse(targetFramework); - args += $" -p:TargetFrameworkIdentifier={framework.Framework}"; - args += $" -p:TargetFrameworkVersion={framework.Version}"; - args += $" -p:UsingMicrosoftNETSdk=true"; - - // Act - var result = _fixture.RunMsBuild(testDirectory, args); - var resultText = result.Output.Trim(); - - // Assert - resultText.Should().Be(expected); - } } } From 1596a1053f1589b6cb5ff92d789b93952b401fc3 Mon Sep 17 00:00:00 2001 From: Nikolche Kolev Date: Thu, 2 Oct 2025 10:40:02 -0700 Subject: [PATCH 2/2] fix tests --- .../DotnetRestoreTests.cs | 74 +------------------ 1 file changed, 1 insertion(+), 73 deletions(-) diff --git a/test/NuGet.Core.FuncTests/Dotnet.Integration.Test/DotnetRestoreTests.cs b/test/NuGet.Core.FuncTests/Dotnet.Integration.Test/DotnetRestoreTests.cs index afc65847849..335e2cb7c6c 100644 --- a/test/NuGet.Core.FuncTests/Dotnet.Integration.Test/DotnetRestoreTests.cs +++ b/test/NuGet.Core.FuncTests/Dotnet.Integration.Test/DotnetRestoreTests.cs @@ -3067,62 +3067,6 @@ public async Task DotnetRestore_WithConditionalPrunedPackageReference_Succeeds(b assetsFile.Targets[1].Libraries.Should().NotContain(e => e.Name.Equals("Y")); } - [Theory] - [InlineData("10.0.100", null, true)] - [InlineData("9.0.100", "true", true)] - [InlineData("10.0.100", null, false)] - [InlineData("9.0.100", "true", false)] - public async Task DotnetRestore_SDKAnalysisLevelAndRestoreEnablePackagePruning_EnablesPruning(string sdkAnalysisLevel, string restoreEnablePackagePruning, bool useStaticGraphRestore) - { - string tfm = Constants.DefaultTargetFramework.GetShortFolderName(); - using SimpleTestPathContext pathContext = _dotnetFixture.CreateSimpleTestPathContext(); - var projectName = "ClassLibrary1"; - var workingDirectory = Path.Combine(pathContext.SolutionRoot, projectName); - var projectFile = Path.Combine(workingDirectory, $"{projectName}.csproj"); - await SimpleTestPackageUtility.CreatePackagesAsync(pathContext.PackageSource, new SimpleTestPackageContext("X", "1.0.0") { Dependencies = [new SimpleTestPackageContext("Y", "1.0.0")] }); - - _dotnetFixture.CreateDotnetNewProject(pathContext.SolutionRoot, projectName, "classlib -f netstandard2.1", testOutputHelper: _testOutputHelper); - - using (var stream = File.Open(projectFile, FileMode.Open, FileAccess.ReadWrite)) - { - var xml = XDocument.Load(stream); - ProjectFileUtils.SetTargetFrameworkForProject(xml, "TargetFramework", tfm); - ProjectFileUtils.AddProperty(xml, "SdkAnalysisLevel", sdkAnalysisLevel); - if (!string.IsNullOrEmpty(restoreEnablePackagePruning)) - { - ProjectFileUtils.AddProperty(xml, "RestoreEnablePackagePruning", restoreEnablePackagePruning); - } - ProjectFileUtils.AddItem( - xml, - "PackageReference", - "X", - string.Empty, - [], - new Dictionary() { { "Version", "1.0.0" } }); - - ProjectFileUtils.AddItem( - xml, - "PrunePackageReference", - "Y", - string.Empty, - [], - new Dictionary() { { "Version", "2.0.0" } }); - - ProjectFileUtils.WriteXmlToFile(xml, stream); - } - - var result = _dotnetFixture.RunDotnetExpectSuccess(workingDirectory, $"restore {projectFile} {(useStaticGraphRestore ? " /p:RestoreUseStaticGraphEvaluation=true" : string.Empty)}", testOutputHelper: _testOutputHelper); - result.AllOutput.Should().NotContain("Warning"); - string assetsFilePath = Path.Combine(workingDirectory, "obj", LockFileFormat.AssetsFileName); - LockFile assetsFile = new LockFileFormat().Read(assetsFilePath); - assetsFile.Targets.Should().HaveCount(1); - assetsFile.PackageSpec.TargetFrameworks.Should().HaveCount(1); - assetsFile.PackageSpec.TargetFrameworks[0].TargetAlias.Should().Be(tfm); - assetsFile.PackageSpec.TargetFrameworks[0].PackagesToPrune.Should().NotBeEmpty(); - assetsFile.Targets[0].Libraries.Should().Contain(e => e.Name.Equals("X")); - assetsFile.Targets[0].Libraries.Should().NotContain(e => e.Name.Equals("Y")); - } - [Theory] [InlineData("9.0.100", null)] [InlineData("10.0.100", "false")] @@ -3178,23 +3122,6 @@ public async Task DotnetRestore_SDKAnalysisLevelAndRestoreEnablePackagePruning_D assetsFile.Targets[0].Libraries.Should().Contain(e => e.Name.Equals("Y")); } - [Theory] - [InlineData(true)] - [InlineData(false)] - public async Task DotnetRestore_WithMultiTargetedProjectAndSDKAnalysisLevel_EnablesForAllFrameworks(bool useStaticGraphRestore) - { - using SimpleTestPathContext pathContext = _dotnetFixture.CreateSimpleTestPathContext(); - LockFile assetsFile = await DotnetRestore_MultiTargetedProjectWithSDKAnalysisLevel(pathContext, "10.0.100", useStaticGraphRestore); - - assetsFile.PackageSpec.TargetFrameworks[0].PackagesToPrune.Should().NotBeEmpty(); - assetsFile.Targets[0].Libraries.Should().Contain(e => e.Name.Equals("X")); - assetsFile.Targets[0].Libraries.Should().NotContain(e => e.Name.Equals("Y")); - - assetsFile.PackageSpec.TargetFrameworks[1].PackagesToPrune.Should().NotBeEmpty(); - assetsFile.Targets[1].Libraries.Should().Contain(e => e.Name.Equals("X")); - assetsFile.Targets[1].Libraries.Should().NotContain(e => e.Name.Equals("Y")); - } - [Theory] [InlineData(true)] [InlineData(false)] @@ -3308,6 +3235,7 @@ private async Task DotnetRestore_MultiTargetedProjectWithRestoreEnable { var xml = XDocument.Load(stream); ProjectFileUtils.SetTargetFrameworkForProject(xml, "TargetFrameworks", $"{tfm};netstandard2.1"); + ProjectFileUtils.AddProperty(xml, "RestoreEnablePackagePruning", "true"); if (!string.IsNullOrEmpty(restoreEnablePackagePruning)) { ProjectFileUtils.AddProperty(xml, "RestoreEnablePackagePruning", restoreEnablePackagePruning, condition);