From 23e2ba847d79562b972dbf54eca3f87c3044d925 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 27 Jan 2025 13:21:02 +0000 Subject: [PATCH] [main] Revert private assets in deps.json change (#45259) (#46324) Co-authored-by: Forgind <12969783+Forgind@users.noreply.github.com> --- .../DependencyContextBuilder.cs | 38 ------------------- .../GenerateDepsFile.cs | 3 -- .../targets/Microsoft.NET.Publish.targets | 1 - .../targets/Microsoft.NET.Sdk.targets | 1 - .../GivenThatWeWantToBuildADesktopLibrary.cs | 26 ------------- .../MvcBuildIntegrationTestLegacy.cs | 15 ++------ 6 files changed, 3 insertions(+), 81 deletions(-) diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/DependencyContextBuilder.cs b/src/Tasks/Microsoft.NET.Build.Tasks/DependencyContextBuilder.cs index 1f1c4c4a14d8..463270e87c14 100644 --- a/src/Tasks/Microsoft.NET.Build.Tasks/DependencyContextBuilder.cs +++ b/src/Tasks/Microsoft.NET.Build.Tasks/DependencyContextBuilder.cs @@ -22,7 +22,6 @@ internal class DependencyContextBuilder private Dictionary> _compileReferences; private Dictionary> _resolvedNuGetFiles; private Dictionary _referenceProjectInfos; - private IEnumerable _excludeFromPublishPackageIds; private Dictionary> _runtimePackAssets; private CompilationOptions _compilationOptions; private string _referenceAssembliesPath; @@ -205,12 +204,6 @@ public DependencyContextBuilder WithReferenceProjectInfos(Dictionary excludeFromPublishPackageIds) - { - _excludeFromPublishPackageIds = excludeFromPublishPackageIds; - return this; - } - public DependencyContextBuilder WithMainProjectInDepsFile(bool includeMainProjectInDepsFile) { _includeMainProjectInDepsFile = includeMainProjectInDepsFile; @@ -821,37 +814,6 @@ private void CalculateExcludedLibraries() { _dependencyLibraries[packageToExcludeFromRuntime].ExcludeFromRuntime = true; } - - // Include transitive dependencies of all top-level dependencies - Dictionary includedDependencies = new(StringComparer.OrdinalIgnoreCase); - Stack dependencyListToWalk = new(_mainProjectDependencies); - - while (dependencyListToWalk.Count != 0) - { - var dependencyName = dependencyListToWalk.Pop(); - // There may not be a library in the assets file if a referenced project has - // PrivateAssets="all" for a package reference, and there is a package in the graph - // that depends on the same package. - if (!includedDependencies.ContainsKey(dependencyName) && - _excludeFromPublishPackageIds?.Contains(dependencyName) != true && - _dependencyLibraries.TryGetValue(dependencyName, out var dependencyLibrary)) - { - includedDependencies.Add(dependencyName, dependencyLibrary); - foreach (var newDependency in _libraryDependencies[dependencyName]) - { - dependencyListToWalk.Push(newDependency.Name); - } - } - } - - foreach (var dependencyLibrary in _dependencyLibraries.Values) - { - if (!includedDependencies.ContainsKey(dependencyLibrary.Name)) - { - dependencyLibrary.ExcludeFromCompilation = true; - dependencyLibrary.ExcludeFromRuntime = true; - } - } } private string GetReferenceLibraryName(ReferenceInfo reference) diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/GenerateDepsFile.cs b/src/Tasks/Microsoft.NET.Build.Tasks/GenerateDepsFile.cs index 549376a1f9c5..816b94b2b580 100644 --- a/src/Tasks/Microsoft.NET.Build.Tasks/GenerateDepsFile.cs +++ b/src/Tasks/Microsoft.NET.Build.Tasks/GenerateDepsFile.cs @@ -64,8 +64,6 @@ public class GenerateDepsFile : TaskBase public ITaskItem CompilerOptions { get; set; } - public ITaskItem[] ExcludeFromPublishPackageReferences { get; set; } = Array.Empty(); - public ITaskItem[] RuntimeStorePackages { get; set; } // NuGet compilation assets @@ -234,7 +232,6 @@ bool ShouldIncludeRuntimeAsset(ITaskItem item) .WithDirectReferences(directReferences) .WithDependencyReferences(dependencyReferences) .WithReferenceProjectInfos(referenceProjects) - .WithExcludeFromPublishAssets(PackageReferenceConverter.GetPackageIds(ExcludeFromPublishPackageReferences)) .WithRuntimePackAssets(runtimePackAssets) .WithCompilationOptions(compilationOptions) .WithReferenceAssembliesPath(FrameworkReferenceResolver.GetDefaultReferenceAssembliesPath()) diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Publish.targets b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Publish.targets index 6f13ff2fdbb7..f3cd6863bc4b 100644 --- a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Publish.targets +++ b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Publish.targets @@ -1251,7 +1251,6 @@ Copyright (c) .NET Foundation. All rights reserved. PlatformLibraryName="$(MicrosoftNETPlatformLibrary)" RuntimeFrameworks="@(RuntimeFramework)" CompilerOptions="@(DependencyFileCompilerOptions)" - ExcludeFromPublishPackageReferences="@(_ExcludeFromPublishPackageReference)" RuntimeStorePackages="@(RuntimeStorePackages)" CompileReferences="@(ResolvedCompileFileDefinitions)" ResolvedNuGetFiles="@(_ResolvedNuGetFilesForPublish)" diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.targets b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.targets index 07710622419d..7c3732d9a59e 100644 --- a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.targets +++ b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.targets @@ -335,7 +335,6 @@ Copyright (c) .NET Foundation. All rights reserved. PlatformLibraryName="$(MicrosoftNETPlatformLibrary)" RuntimeFrameworks="@(RuntimeFramework)" CompilerOptions="@(DependencyFileCompilerOptions)" - ExcludeFromPublishPackageReferences="@(_ExcludeFromPublishPackageReference)" CompileReferences="@(ResolvedCompileFileDefinitions)" ResolvedNuGetFiles="@(NativeCopyLocalItems);@(ResourceCopyLocalItems);@(RuntimeCopyLocalItems)" UserRuntimeAssemblies="@(UserRuntimeAssembly)" diff --git a/test/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildADesktopLibrary.cs b/test/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildADesktopLibrary.cs index fe41cd5525de..7b47bc1b87d4 100644 --- a/test/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildADesktopLibrary.cs +++ b/test/Microsoft.NET.Build.Tests/GivenThatWeWantToBuildADesktopLibrary.cs @@ -227,32 +227,6 @@ public void It_can_preserve_compilation_context_and_reference_netstandard_librar } } - [Theory] - [InlineData("RazorSimpleMvc22", "netcoreapp2.2", "SimpleMvc22")] - [InlineData("DesktopReferencingNetStandardLibrary", "net46", "Library")] - public void PackageReferences_with_private_assets_do_not_appear_in_deps_file(string asset, string targetFramework, string exeName) - { - var testAsset = _testAssetsManager - .CopyTestAsset(asset) - .WithSource(); - - var buildCommand = new BuildCommand(testAsset); - buildCommand.Execute().Should().Pass(); - - using (var depsJsonFileStream = File.OpenRead(Path.Combine(buildCommand.GetOutputDirectory(targetFramework).FullName, exeName + ".deps.json"))) - { - var dependencyContext = new DependencyContextJsonReader().Read(depsJsonFileStream); - if (asset.Equals("DesktopReferencingNetStandardLibrary")) - { - dependencyContext.CompileLibraries.Any(l => l.Name.Equals("Library")).Should().BeTrue(); - } - else - { - dependencyContext.CompileLibraries.Any(l => l.Name.Equals("Microsoft.AspNetCore.App")).Should().BeFalse(); - } - } - } - [WindowsOnlyFact] public void It_resolves_assembly_conflicts_with_a_NETFramework_library() { diff --git a/test/Microsoft.NET.Sdk.Razor.Tests/MvcBuildIntegrationTestLegacy.cs b/test/Microsoft.NET.Sdk.Razor.Tests/MvcBuildIntegrationTestLegacy.cs index 2453cbeaf638..f223c1a15208 100644 --- a/test/Microsoft.NET.Sdk.Razor.Tests/MvcBuildIntegrationTestLegacy.cs +++ b/test/Microsoft.NET.Sdk.Razor.Tests/MvcBuildIntegrationTestLegacy.cs @@ -115,18 +115,9 @@ public void Build_ProducesDepsFileWithCompilationContext_ButNoReferences() depsFile.Should().Exist(); var dependencyContext = ReadDependencyContext(depsFile.FullName); - if (TargetFramework.Equals("netcoreapp2.2")) - { - // Ensure compile references from a PrivateAssets="all" PackageReference don't exist - var packageReference = dependencyContext.CompileLibraries.FirstOrDefault(l => l.Name == "System.Runtime.CompilerServices.Unsafe", defaultValue: null); - packageReference.Should().BeNull(); - } - else - { - // Ensure some compile references exist - var packageReference = dependencyContext.CompileLibraries.First(l => l.Name == "System.Runtime.CompilerServices.Unsafe"); - packageReference.Assemblies.Should().NotBeEmpty(); - } + // Ensure some compile references exist + var packageReference = dependencyContext.CompileLibraries.First(l => l.Name == "System.Runtime.CompilerServices.Unsafe"); + packageReference.Assemblies.Should().NotBeEmpty(); var projectReference = dependencyContext.CompileLibraries.First(l => l.Name == TestProjectName); projectReference.Assemblies.Should().NotBeEmpty();