Skip to content

Commit 57c4ac8

Browse files
committed
Update targeting pack selection logic
1 parent 2a36e37 commit 57c4ac8

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

src/Tasks/Microsoft.NET.Build.Tasks/CreateWindowsSdkKnownFrameworkReferences.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ public class CreateWindowsSdkKnownFrameworkReferences : TaskBase
1717
{
1818
public bool UseWindowsSDKPreview { get; set; }
1919

20+
public bool UseCsWinRT3 { get; set; }
21+
2022
public string WindowsSdkPackageVersion { get; set; }
2123

2224
public string TargetFrameworkIdentifier { get; set; }
@@ -76,6 +78,21 @@ protected override void ExecuteCore()
7678
continue;
7779
}
7880

81+
// If we're using CsWinRT 3.0, filter to only items with '1' as the revision number.
82+
// Otherwise, if we're using CsWinRT 2.0, exclude all of them and pick '0' revisions.
83+
if ((UseCsWinRT3 && windowsSdkVersionParsed.Revision == 0) ||
84+
(!UseCsWinRT3 && windowsSdkVersionParsed.Revision == 1))
85+
{
86+
continue;
87+
}
88+
89+
// Normalize the revision back to '0' now, as that matches the actual Windows SDK version
90+
windowsSdkVersionParsed = new Version(
91+
windowsSdkVersionParsed.Major,
92+
windowsSdkVersionParsed.Minor,
93+
windowsSdkVersionParsed.Build,
94+
revision: 0);
95+
7996
if (!knownFrameworkReferencesByWindowsSdkVersion.ContainsKey(windowsSdkVersionParsed))
8097
{
8198
knownFrameworkReferencesByWindowsSdkVersion[windowsSdkVersionParsed] = new();

src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ Copyright (c) .NET Foundation. All rights reserved.
3939
<!-- Generate KnownFrameworkReference items for the Windows SDK pack -->
4040
<CreateWindowsSdkKnownFrameworkReferences
4141
UseWindowsSDKPreview="$(UseWindowsSDKPreview)"
42+
UseCsWinRT3="$(_TargetPlatformVersionUsesCsWinRT3)"
4243
WindowsSdkPackageVersion="$(WindowsSdkPackageVersion)"
4344
TargetFrameworkIdentifier="$(TargetFrameworkIdentifier)"
4445
TargetFrameworkVersion="$(_TargetFrameworkVersionWithoutV)"

0 commit comments

Comments
 (0)