From 61991b51b7b9b57b5e337f4e52f4acb2b023f8ba Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Sun, 20 Nov 2022 11:48:29 +0100 Subject: [PATCH 1/6] Add switch to disable apphost pack restore Contributes to https://github.com/dotnet/runtime/issues/58109 In dotnet/runtime we live build targeting packs, runtime packs and app host packs. For the former two, switches already exist to disable nuget restore: - EnableTargetingPackDownload - EnableRuntimePackDownload The latter one doesn't yet have such a switch and therefore is always restored by NuGet. In the cases where want to use the live built apphost pack, restore fails, i.e. from a runtime build: `artifacts/bin/trimmingTests/projects/Microsoft.Extensions.DependencyInjection.TrimmingTests/ActivatorUtilitiesTests/osx-x64/project.csproj(0,0): error NU1102: (NETCORE_ENGINEERING_TELEMETRY=Build) Unable to find package Microsoft.NETCore.App.Host.osx-x64 with version (= 8.0.0)` --- .../Microsoft.NET.Sdk.FrameworkReferenceResolution.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets index c66580e5e4e5..0f6c389cb85a 100644 --- a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets +++ b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets @@ -146,7 +146,7 @@ Copyright (c) .NET Foundation. All rights reserved. DotNetIjwHostLibraryNameWithoutExtension="$(_DotNetIjwHostLibraryNameWithoutExtension)" RuntimeGraphPath="$(BundledRuntimeIdentifierGraphFile)" KnownAppHostPacks="@(KnownAppHostPack)" - NuGetRestoreSupported="$(_NuGetRestoreSupported)" + NuGetRestoreSupported="$([MSBuild]::ValueOrDefault('$(EnableAppHostPackDownload)', '$(_NuGetRestoreSupported)'))" NetCoreTargetingPackRoot="$(NetCoreTargetingPackRoot)"> From c0d6de480237d454de7cb0a635772cacff4f0cdc Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Sun, 20 Nov 2022 11:53:51 +0100 Subject: [PATCH 2/6] Update Microsoft.NET.Sdk.FrameworkReferenceResolution.targets --- .../Microsoft.NET.Sdk.FrameworkReferenceResolution.targets | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets index 0f6c389cb85a..a5deb65df376 100644 --- a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets +++ b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets @@ -132,6 +132,10 @@ Copyright (c) .NET Foundation. All rights reserved. $(RuntimeIdentifier) $(DefaultAppHostRuntimeIdentifier) + + + true + From cb12642995b3588810667578c624b175204ca67f Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Sun, 20 Nov 2022 12:18:36 +0100 Subject: [PATCH 3/6] Update Microsoft.NET.Sdk.FrameworkReferenceResolution.targets --- .../Microsoft.NET.Sdk.FrameworkReferenceResolution.targets | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets index a5deb65df376..5a323cb7e8d9 100644 --- a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets +++ b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets @@ -150,7 +150,8 @@ Copyright (c) .NET Foundation. All rights reserved. DotNetIjwHostLibraryNameWithoutExtension="$(_DotNetIjwHostLibraryNameWithoutExtension)" RuntimeGraphPath="$(BundledRuntimeIdentifierGraphFile)" KnownAppHostPacks="@(KnownAppHostPack)" - NuGetRestoreSupported="$(EnableAppHostPackDownload)" + NuGetRestoreSupported="$(_NuGetRestoreSupported)" + EnableAppHostPackDownload="$(EnableAppHostPackDownload)" NetCoreTargetingPackRoot="$(NetCoreTargetingPackRoot)"> From 3ed0f1dc123a8b93a551e2b00605fa315f413586 Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Sun, 20 Nov 2022 12:22:21 +0100 Subject: [PATCH 4/6] Update ResolveAppHosts.cs --- src/Tasks/Microsoft.NET.Build.Tasks/ResolveAppHosts.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/ResolveAppHosts.cs b/src/Tasks/Microsoft.NET.Build.Tasks/ResolveAppHosts.cs index eb0cee610880..4f5a75f2936f 100644 --- a/src/Tasks/Microsoft.NET.Build.Tasks/ResolveAppHosts.cs +++ b/src/Tasks/Microsoft.NET.Build.Tasks/ResolveAppHosts.cs @@ -54,6 +54,8 @@ public class ResolveAppHosts : TaskBase public bool NuGetRestoreSupported { get; set; } = true; public string NetCoreTargetingPackRoot { get; set; } + + public bool EnableAppHostPackDownload { get; set; } [Output] public ITaskItem[] PackagesToDownload { get; set; } @@ -276,7 +278,6 @@ private ITaskItem GetHostItem(string runtimeIdentifier, string hostRelativePathInPackage = Path.Combine("runtimes", bestAppHostRuntimeIdentifier, "native", hostNameWithoutExtension + (isExecutable ? ExecutableExtension.ForRuntimeIdentifier(bestAppHostRuntimeIdentifier) : ".dll")); - TaskItem appHostItem = new TaskItem(itemName); string appHostPackPath = null; if (!string.IsNullOrEmpty(TargetingPackRoot)) @@ -289,7 +290,7 @@ private ITaskItem GetHostItem(string runtimeIdentifier, appHostItem.SetMetadata(MetadataKeys.PackageDirectory, appHostPackPath); appHostItem.SetMetadata(MetadataKeys.Path, Path.Combine(appHostPackPath, hostRelativePathInPackage)); } - else + else if (EnableAppHostPackDownload) { // C++/CLI does not support package download && dedup error if (!NuGetRestoreSupported && !packagesToDownload.ContainsKey(hostPackName)) From 5ffe81834ac8622b7f4f5bcdb58b867d58bb77d8 Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Sun, 20 Nov 2022 12:23:28 +0100 Subject: [PATCH 5/6] Update Microsoft.NET.Sdk.FrameworkReferenceResolution.targets --- .../Microsoft.NET.Sdk.FrameworkReferenceResolution.targets | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets index 5a323cb7e8d9..599cf7c6e11a 100644 --- a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets +++ b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets @@ -132,10 +132,6 @@ Copyright (c) .NET Foundation. All rights reserved. $(RuntimeIdentifier) $(DefaultAppHostRuntimeIdentifier) - - - true - Date: Sun, 20 Nov 2022 12:24:26 +0100 Subject: [PATCH 6/6] Update ResolveAppHosts.cs --- src/Tasks/Microsoft.NET.Build.Tasks/ResolveAppHosts.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/ResolveAppHosts.cs b/src/Tasks/Microsoft.NET.Build.Tasks/ResolveAppHosts.cs index 4f5a75f2936f..c48734d35350 100644 --- a/src/Tasks/Microsoft.NET.Build.Tasks/ResolveAppHosts.cs +++ b/src/Tasks/Microsoft.NET.Build.Tasks/ResolveAppHosts.cs @@ -55,7 +55,7 @@ public class ResolveAppHosts : TaskBase public string NetCoreTargetingPackRoot { get; set; } - public bool EnableAppHostPackDownload { get; set; } + public bool EnableAppHostPackDownload { get; set; } = true; [Output] public ITaskItem[] PackagesToDownload { get; set; }