@@ -18,41 +18,38 @@ internal static class RestoreBuilder
18
18
public static ProjectRestoreInfo ToProjectRestoreInfo ( IImmutableDictionary < string , IProjectRuleSnapshot > update )
19
19
{
20
20
IImmutableDictionary < string , string > properties = update . GetSnapshotOrEmpty ( NuGetRestore . SchemaName ) . Properties ;
21
- IProjectRuleSnapshot frameworkReferences = update . GetSnapshotOrEmpty ( CollectedFrameworkReference . SchemaName ) ;
22
- IProjectRuleSnapshot packageDownloads = update . GetSnapshotOrEmpty ( CollectedPackageDownload . SchemaName ) ;
23
- IProjectRuleSnapshot projectReferences = update . GetSnapshotOrEmpty ( EvaluatedProjectReference . SchemaName ) ;
24
- IProjectRuleSnapshot packageReferences = update . GetSnapshotOrEmpty ( CollectedPackageReference . SchemaName ) ;
25
- IProjectRuleSnapshot packageVersions = update . GetSnapshotOrEmpty ( CollectedPackageVersion . SchemaName ) ;
26
- IProjectRuleSnapshot nuGetAuditSuppress = update . GetSnapshotOrEmpty ( CollectedNuGetAuditSuppressions . SchemaName ) ;
27
- IProjectRuleSnapshot prunePackageReferences = update . GetSnapshotOrEmpty ( CollectedPrunePackageReference . SchemaName ) ;
28
- IProjectRuleSnapshot toolReferences = update . GetSnapshotOrEmpty ( DotNetCliToolReference . SchemaName ) ;
29
21
30
22
// For certain project types such as UWP, "TargetFrameworkMoniker" != the moniker that restore uses
31
23
string targetMoniker = properties . GetPropertyOrEmpty ( NuGetRestore . NuGetTargetMonikerProperty ) ;
32
24
if ( targetMoniker . Length == 0 )
33
25
targetMoniker = properties . GetPropertyOrEmpty ( NuGetRestore . TargetFrameworkMonikerProperty ) ;
34
26
35
- TargetFrameworkInfo frameworkInfo = new TargetFrameworkInfo (
27
+ TargetFrameworkInfo frameworkInfo = new (
36
28
targetMoniker ,
37
- ToReferenceItems ( frameworkReferences . Items ) ,
38
- ToReferenceItems ( packageDownloads . Items ) ,
39
- ToReferenceItems ( projectReferences . Items ) ,
40
- ToReferenceItems ( packageReferences . Items ) ,
41
- ToReferenceItems ( packageVersions . Items ) ,
42
- ToReferenceItems ( nuGetAuditSuppress . Items ) ,
43
- ToReferenceItems ( prunePackageReferences . Items ) ,
44
- properties ) ;
29
+ frameworkReferences : GetReferenceItems ( CollectedFrameworkReference . SchemaName ) ,
30
+ packageDownloads : GetReferenceItems ( CollectedPackageDownload . SchemaName ) ,
31
+ projectReferences : GetReferenceItems ( EvaluatedProjectReference . SchemaName ) ,
32
+ packageReferences : GetReferenceItems ( CollectedPackageReference . SchemaName ) ,
33
+ centralPackageVersions : GetReferenceItems ( CollectedPackageVersion . SchemaName ) ,
34
+ nuGetAuditSuppress : GetReferenceItems ( CollectedNuGetAuditSuppressions . SchemaName ) ,
35
+ prunePackageReferences : GetReferenceItems ( CollectedPrunePackageReference . SchemaName ) ,
36
+ properties : properties ) ;
45
37
46
38
return new ProjectRestoreInfo (
47
- properties . GetPropertyOrEmpty ( NuGetRestore . MSBuildProjectExtensionsPathProperty ) ,
48
- properties . GetPropertyOrEmpty ( NuGetRestore . ProjectAssetsFileProperty ) ,
49
- properties . GetPropertyOrEmpty ( NuGetRestore . TargetFrameworksProperty ) ,
50
- EmptyTargetFrameworks . Add ( frameworkInfo ) ,
51
- ToReferenceItems ( toolReferences . Items ) ) ;
39
+ msbuildProjectExtensionsPath : properties . GetPropertyOrEmpty ( NuGetRestore . MSBuildProjectExtensionsPathProperty ) ,
40
+ projectAssetsFilePath : properties . GetPropertyOrEmpty ( NuGetRestore . ProjectAssetsFileProperty ) ,
41
+ originalTargetFrameworks : properties . GetPropertyOrEmpty ( NuGetRestore . TargetFrameworksProperty ) ,
42
+ targetFrameworks : [ frameworkInfo ] ,
43
+ toolReferences : GetReferenceItems ( DotNetCliToolReference . SchemaName ) ) ;
52
44
53
- static ImmutableArray < ReferenceItem > ToReferenceItems ( IImmutableDictionary < string , IImmutableDictionary < string , string > > items )
45
+ ImmutableArray < ReferenceItem > GetReferenceItems ( string schemaName )
54
46
{
55
- return items . ToImmutableArray ( static ( name , metadata ) => new ReferenceItem ( name , metadata ) ) ;
47
+ if ( ! update . TryGetValue ( schemaName , out IProjectRuleSnapshot ? result ) )
48
+ {
49
+ return [ ] ;
50
+ }
51
+
52
+ return result . Items . ToImmutableArray ( static ( name , metadata ) => new ReferenceItem ( name , metadata ) ) ;
56
53
}
57
54
}
58
55
}
0 commit comments