diff --git a/src/Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk/src/ChooseBestP2PTargetFrameworkTask.cs b/src/Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk/src/ChooseBestP2PTargetFrameworkTask.cs
index eed6ca19627..f94675d072b 100644
--- a/src/Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk/src/ChooseBestP2PTargetFrameworkTask.cs
+++ b/src/Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk/src/ChooseBestP2PTargetFrameworkTask.cs
@@ -2,6 +2,7 @@
// The .NET Foundation licenses this file to you under the MIT license.
using Microsoft.Build.Framework;
+using System;
using System.IO;
namespace Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk
@@ -34,11 +35,17 @@ public override bool Execute()
targetFrameworksValue = projectReference.GetMetadata("TargetFrameworks");
}
string[] targetFrameworks = targetFrameworksValue.Split(';');
+
+ string referringTargetFramework = projectReference.GetMetadata("ReferringTargetFramework");
+ if (string.IsNullOrWhiteSpace(referringTargetFramework))
+ {
+ referringTargetFramework = TargetFramework;
+ }
- string bestTargetFramework = targetFrameworkResolver.GetBestSupportedTargetFramework(targetFrameworks, TargetFramework);
+ string bestTargetFramework = targetFrameworkResolver.GetBestSupportedTargetFramework(targetFrameworks, referringTargetFramework);
if (bestTargetFramework == null)
{
- Log.LogError($"Not able to find a compatible supported target framework for {TargetFramework} in Project {Path.GetFileName(projectReference.ItemSpec)}. The Supported Configurations are {string.Join(", ", targetFrameworks)}");
+ Log.LogError($"Not able to find a compatible supported target framework for {referringTargetFramework} in Project {Path.GetFileName(projectReference.ItemSpec)}. The Supported Configurations are {string.Join(", ", targetFrameworks)}");
}
projectReference.SetMetadata("SetTargetFramework", "TargetFramework=" + bestTargetFramework);
diff --git a/src/Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk/src/build/Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk.targets b/src/Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk/src/build/Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk.targets
index cbbccefde91..3072bc45636 100644
--- a/src/Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk/src/build/Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk.targets
+++ b/src/Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk/src/build/Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk.targets
@@ -67,23 +67,25 @@
Targets="GetTargetFrameworks"
BuildInParallel="$(BuildInParallel)"
RemoveProperties="TargetFramework;RuntimeIdentifier"
+ Condition="'%(ProjectReference.SkipGetTargetFrameworkProperties)' != 'true'"
SkipNonexistentTargets="true">
-
+
-
+
<_OriginalTargetFramework Condition="'$(_OriginalTargetFramework)' == ''">$(TargetFramework)
-
+
-
+