@@ -94,13 +94,11 @@ public async Task<int> ExecuteCommand(PackageReferenceArgs packageReferenceArgs,
9494 packageReferenceArgs . ProjectPath ) ) ;
9595 }
9696
97- // Parse the user specified frameworks once to avoid re-do's
98- var userSpecifiedFrameworks = new List < NuGetFramework > ( ) ;
97+ // Keep the user specified frameworks as aliases to match against TargetAlias
98+ var userSpecifiedFrameworks = new List < string > ( ) ;
9999 if ( packageReferenceArgs . Frameworks ? . Any ( ) == true )
100100 {
101- userSpecifiedFrameworks . AddRange ( packageReferenceArgs
102- . Frameworks
103- . Select ( NuGetFramework . Parse ) ) ;
101+ userSpecifiedFrameworks . AddRange ( packageReferenceArgs . Frameworks ) ;
104102 }
105103
106104 var originalPackageSpec = matchingPackageSpecs . FirstOrDefault ( ) ;
@@ -198,19 +196,19 @@ public async Task<int> ExecuteCommand(PackageReferenceArgs packageReferenceArgs,
198196 packageReferenceArgs . Logger . LogDebug ( "Restore Review completed" ) ;
199197
200198 // 4. Process Restore Result
201- var compatibleFrameworks = new HashSet < NuGetFramework > (
199+ var compatibleFrameworks = new HashSet < string > (
202200 restorePreviewResult
203201 . Result
204202 . CompatibilityCheckResults
205203 . Where ( t => t . Success )
206- . Select ( t => t . Graph . Framework ) , NuGetFrameworkFullComparer . Instance ) ;
204+ . Select ( t => t . Graph . TargetAlias ) , StringComparer . OrdinalIgnoreCase ) ;
207205
208206 if ( packageReferenceArgs . Frameworks ? . Any ( ) == true )
209207 {
210208 // If the user has specified frameworks then we intersect that with the compatible frameworks.
211- var userSpecifiedFrameworkSet = new HashSet < NuGetFramework > (
209+ var userSpecifiedFrameworkSet = new HashSet < string > (
212210 userSpecifiedFrameworks ,
213- NuGetFrameworkFullComparer . Instance ) ;
211+ StringComparer . OrdinalIgnoreCase ) ;
214212
215213 compatibleFrameworks . IntersectWith ( userSpecifiedFrameworkSet ) ;
216214 }
@@ -260,16 +258,13 @@ public async Task<int> ExecuteCommand(PackageReferenceArgs packageReferenceArgs,
260258 packageReferenceArgs . PackageId ,
261259 packageReferenceArgs . ProjectPath ) ) ;
262260
263- var compatibleOriginalFrameworks = compatibleFrameworks
264- . Select ( e => GetAliasForFramework ( originalPackageSpec , e ) )
265- . Where ( originalFramework => originalFramework != null ) ;
266-
267261 // generate a library dependency with all the metadata like Include, Exlude and SuppressParent
268262 var libraryDependency = GenerateLibraryDependency ( updatedPackageSpec , packageReferenceArgs . PackageDirectory , packageDependency , resolvedVersion ) ;
269263
264+ // compatibleFrameworks already contains aliases from TargetAlias
270265 msBuild . AddPackageReferencePerTFM ( packageReferenceArgs . ProjectPath ,
271266 libraryDependency ,
272- compatibleOriginalFrameworks ,
267+ compatibleFrameworks ,
273268 packageReferenceArgs . NoVersion ) ;
274269 }
275270
@@ -279,7 +274,7 @@ public async Task<int> ExecuteCommand(PackageReferenceArgs packageReferenceArgs,
279274 return 0 ;
280275 }
281276
282- internal static bool TryFindResolvedVersion ( List < NuGetFramework > userSpecifiedFrameworks , string packageId , RestoreResult restoreResult , ILogger logger , out NuGetVersion resolvedVersion )
277+ internal static bool TryFindResolvedVersion ( List < string > userSpecifiedFrameworks , string packageId , RestoreResult restoreResult , ILogger logger , out NuGetVersion resolvedVersion )
283278 {
284279 // get the package resolved version from restore preview result
285280 ( LibraryType libraryType , resolvedVersion ) = GetPackageVersionFromRestoreResult ( restoreResult , packageId , userSpecifiedFrameworks ) ;
@@ -454,7 +449,7 @@ private static DependencyGraphSpec ReadProjectDependencyGraph(PackageReferenceAr
454449
455450 private static ( LibraryType , NuGetVersion ) GetPackageVersionFromRestoreResult ( RestoreResult restoreResult ,
456451 string packageId ,
457- List < NuGetFramework > userSpecifiedFrameworks )
452+ List < string > userSpecifiedFrameworks )
458453 {
459454 // Get the restore graphs from the restore result
460455 var restoreGraphs = restoreResult
@@ -463,12 +458,12 @@ private static (LibraryType, NuGetVersion) GetPackageVersionFromRestoreResult(Re
463458 if ( userSpecifiedFrameworks . Count > 1 )
464459 {
465460 // If the user specified frameworks then we get the flattened graphs only from the compatible frameworks.
466- var userSpecifiedFrameworkSet = new HashSet < NuGetFramework > (
461+ var userSpecifiedFrameworkSet = new HashSet < string > (
467462 userSpecifiedFrameworks ,
468- NuGetFrameworkFullComparer . Instance ) ;
463+ StringComparer . OrdinalIgnoreCase ) ;
469464
470465 restoreGraphs = restoreGraphs
471- . Where ( r => userSpecifiedFrameworkSet . Contains ( r . Framework ) ) ;
466+ . Where ( r => userSpecifiedFrameworkSet . Contains ( r . TargetAlias ) ) ;
472467 }
473468
474469 foreach ( var restoreGraph in restoreGraphs )
0 commit comments