Skip to content

[release/6.0.1xx] Duplicate frameworks when building runtime #3207

@ayakael

Description

@ayakael

Describe the Bug

Since 6.0.112, build of runtime on Alpine fails when there's a mismatch between version number of Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk as defined by SOURCE_BUILT_SDK_VERSION_ARCADE_PACKAGING and in src/runtime/global.json. The nuget package, silently failing to be restored, does not erase the duplicate TFM when building runtime. For 6.0.113, the following patch solves the issue:

From 75c3e74ea35219f257c80daf9a236e0f518a7875 Mon Sep 17 00:00:00 2001
Patch-Source: https://github.com/dotnet/source-build/discussions/3176
From: Antoine Martin <[email protected]>
Date: Fri, 16 Dec 2022 20:16:03 +0000
Subject: [PATCH 1/1] Downgrades Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk
---
diff --git a/src/runtime/global.json.orig b/src/runtime/global.json
index 8ce67b8b62..1a7291ab80 100644
--- a/src/runtime/global.json.orig
+++ b/src/runtime/global.json
@@ -12,7 +12,7 @@
     "python3": "3.7.1"
   },
   "msbuild-sdks": {
-    "Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk": "6.0.0-beta.22571.3",
+    "Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk": "6.0.0-beta.22561.1",
     "Microsoft.DotNet.Arcade.Sdk": "6.0.0-beta.22571.3",
     "Microsoft.DotNet.Helix.Sdk": "6.0.0-beta.22571.3",
     "Microsoft.DotNet.SharedFramework.Sdk": "6.0.0-beta.22571.3",

Steps to Reproduce

Building source-build in Alpine Linux environment.

Other Information

Related issue: dotnet/arcade#11998

Error message:

    Determining projects to restore...
    /builds/ayakael/aports/community/dotnet6-build/src/bootstrap/sdk/6.0.111/NuGet.RestoreEx.targets(19,5): error : Invalid restore input. Duplicate frameworks found: 'net6.0-windows7.0, net6.0, netstandard2.0, netstandard2.0, net461'. Input files: /builds/ayakael/aports/community/dotnet6-build/src/dotnet-v6.0.112/src/runtime/artifacts/source-build/self/src/src/libraries/Microsoft.Win32.Registry.AccessControl/src/Microsoft.Win32.Registry.AccessControl.csproj. [/builds/ayakael/aports/community/dotnet6-build/src/dotnet-v6.0.112/src/runtime/artifacts/source-build/self/src/Build.proj]
    /builds/ayakael/aports/community/dotnet6-build/src/bootstrap/sdk/6.0.111/NuGet.RestoreEx.targets(19,5): error :    at NuGet.Commands.SpecValidationUtility.ValidateFrameworks(PackageSpec spec, IEnumerable`1 files) [/builds/ayakael/aports/community/dotnet6-build/src/dotnet-v6.0.112/src/runtime/artifacts/source-build/self/src/Build.proj]
    /builds/ayakael/aports/community/dotnet6-build/src/bootstrap/sdk/6.0.111/NuGet.RestoreEx.targets(19,5): error :    at NuGet.Commands.SpecValidationUtility.ValidateProjectSpecPackageReference(PackageSpec spec, IEnumerable`1 files) [/builds/ayakael/aports/community/dotnet6-build/src/dotnet-v6.0.112/src/runtime/artifacts/source-build/self/src/Build.proj]
    /builds/ayakael/aports/community/dotnet6-build/src/bootstrap/sdk/6.0.111/NuGet.RestoreEx.targets(19,5): error :    at NuGet.Commands.SpecValidationUtility.ValidateProjectSpec(PackageSpec spec) [/builds/ayakael/aports/community/dotnet6-build/src/dotnet-v6.0.112/src/runtime/artifacts/source-build/self/src/Build.proj]
    /builds/ayakael/aports/community/dotnet6-build/src/bootstrap/sdk/6.0.111/NuGet.RestoreEx.targets(19,5): error :    at NuGet.Commands.SpecValidationUtility.ValidateDependencySpec(DependencyGraphSpec spec, HashSet`1 projectsToSkip) [/builds/ayakael/aports/community/dotnet6-build/src/dotnet-v6.0.112/src/runtime/artifacts/source-build/self/src/Build.proj]
    /builds/ayakael/aports/community/dotnet6-build/src/bootstrap/sdk/6.0.111/NuGet.RestoreEx.targets(19,5): error :    at NuGet.Commands.DependencyGraphSpecRequestProvider.GetRequestsFromItems(RestoreArgs restoreContext, DependencyGraphSpec dgFile) [/builds/ayakael/aports/community/dotnet6-build/src/dotnet-v6.0.112/src/runtime/artifacts/source-build/self/src/Build.proj]
    /builds/ayakael/aports/community/dotnet6-build/src/bootstrap/sdk/6.0.111/NuGet.RestoreEx.targets(19,5): error :    at NuGet.Commands.DependencyGraphSpecRequestProvider.CreateRequests(RestoreArgs restoreContext) [/builds/ayakael/aports/community/dotnet6-build/src/dotnet-v6.0.112/src/runtime/artifacts/source-build/self/src/Build.proj]
    /builds/ayakael/aports/community/dotnet6-build/src/bootstrap/sdk/6.0.111/NuGet.RestoreEx.targets(19,5): error :    at NuGet.Commands.RestoreRunner.CreatePreLoadedRequests(RestoreArgs restoreContext) [/builds/ayakael/aports/community/dotnet6-build/src/dotnet-v6.0.112/src/runtime/artifacts/source-build/self/src/Build.proj]
    /builds/ayakael/aports/community/dotnet6-build/src/bootstrap/sdk/6.0.111/NuGet.RestoreEx.targets(19,5): error :    at NuGet.Commands.RestoreRunner.GetRequests(RestoreArgs restoreContext) [/builds/ayakael/aports/community/dotnet6-build/src/dotnet-v6.0.112/src/runtime/artifacts/source-build/self/src/Build.proj]
    /builds/ayakael/aports/community/dotnet6-build/src/bootstrap/sdk/6.0.111/NuGet.RestoreEx.targets(19,5): error :    at NuGet.Commands.RestoreRunner.RunAsync(RestoreArgs restoreContext, CancellationToken token) [/builds/ayakael/aports/community/dotnet6-build/src/dotnet-v6.0.112/src/runtime/artifacts/source-build/self/src/Build.proj]
    /builds/ayakael/aports/community/dotnet6-build/src/bootstrap/sdk/6.0.111/NuGet.RestoreEx.targets(19,5): error :    at NuGet.Build.Tasks.BuildTasksUtility.RestoreAsync(DependencyGraphSpec dependencyGraphSpec, Boolean interactive, Boolean recursive, Boolean noCache, Boolean ignoreFailedSources, Boolean disableParallel, Boolean force, Boolean forceEvaluate, Boolean hideWarningsAndErrors, Boolean restorePC, Boolean cleanupAssetsForUnsupportedProjects, ILogger log, CancellationToken cancellationToken) [/builds/ayakael/aports/community/dotnet6-build/src/dotnet-v6.0.112/src/runtime/artifacts/source-build/self/src/Build.proj]
    /builds/ayakael/aports/community/dotnet6-build/src/bootstrap/sdk/6.0.111/NuGet.RestoreEx.targets(19,5): error :    at NuGet.Build.Tasks.Console.MSBuildStaticGraphRestore.RestoreAsync(String entryProjectFilePath, IDictionary`2 globalProperties, IReadOnlyDictionary`2 options) [/builds/ayakael/aports/community/dotnet6-build/src/dotnet-v6.0.112/src/runtime/artifacts/source-build/self/src/Build.proj]

Metadata

Metadata

Assignees

Labels

area-product-experienceImprovements in the end-user's product experience

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions