@@ -73,7 +73,7 @@ internal static void Register(params FrameworkPackages[] toRegister)
73
73
}
74
74
}
75
75
76
- public static FrameworkPackages [ ] GetFrameworkPackages ( NuGetFramework framework , string [ ] frameworkReferences )
76
+ public static FrameworkPackages [ ] GetFrameworkPackages ( NuGetFramework framework , string [ ] frameworkReferences , string targetingPackRoot )
77
77
{
78
78
var frameworkPackages = new List < FrameworkPackages > ( ) ;
79
79
@@ -94,7 +94,7 @@ public static FrameworkPackages[] GetFrameworkPackages(NuGetFramework framework,
94
94
{
95
95
// if we didn't predefine the package overrides, load them from the targeting pack
96
96
// we might just leave this out since in future frameworks we'll have this functionality built into NuGet.Frameworks
97
- var frameworkPackagesFromPack = LoadFrameworkPackagesFromPack ( framework , frameworkReference ) ?? new FrameworkPackages ( framework , frameworkReference ) ;
97
+ var frameworkPackagesFromPack = LoadFrameworkPackagesFromPack ( framework , frameworkReference , targetingPackRoot ) ?? new FrameworkPackages ( framework , frameworkReference ) ;
98
98
99
99
Register ( frameworkPackagesFromPack ) ;
100
100
@@ -105,7 +105,7 @@ public static FrameworkPackages[] GetFrameworkPackages(NuGetFramework framework,
105
105
return frameworkPackages . ToArray ( ) ;
106
106
}
107
107
108
- private static FrameworkPackages LoadFrameworkPackagesFromPack ( NuGetFramework framework , string frameworkName )
108
+ private static FrameworkPackages LoadFrameworkPackagesFromPack ( NuGetFramework framework , string frameworkName , string targetingPackRoot )
109
109
{
110
110
if ( framework is null || framework . Framework != FrameworkConstants . FrameworkIdentifiers . NetCoreApp )
111
111
{
@@ -121,33 +121,35 @@ private static FrameworkPackages LoadFrameworkPackagesFromPack(NuGetFramework fr
121
121
new FrameworkPackages ( framework , frameworkName ) :
122
122
new FrameworkPackages ( framework , frameworkName , FrameworkPackagesByFramework [ nearestFramework ] [ frameworkKey ] ) ;
123
123
124
- // packs location : %ProgramFiles%\dotnet\packs
125
- var packsFolder = Path . Combine ( Environment . GetFolderPath ( Environment . SpecialFolder . ProgramFiles ) , "dotnet" , "packs" , frameworkName + ".Ref" ) ;
126
- if ( Directory . Exists ( packsFolder ) )
124
+ if ( ! string . IsNullOrEmpty ( targetingPackRoot ) )
127
125
{
128
- var packVersionPattern = $ "{ framework . Version . Major } .{ framework . Version . Minor } .*";
129
- var packDirectories = Directory . GetDirectories ( packsFolder , packVersionPattern ) ;
130
- var packageOverridesFile = packDirectories
131
- . Select ( d => ( Overrides : Path . Combine ( d , "data" , "PackageOverrides.txt" ) , Version : ParseVersion ( Path . GetFileName ( d ) ) ) )
132
- . Where ( d => File . Exists ( d . Overrides ) )
133
- . OrderByDescending ( d => d . Version )
134
- . FirstOrDefault ( ) . Overrides ;
135
-
136
- if ( packageOverridesFile is not null )
126
+ var packsFolder = Path . Combine ( targetingPackRoot , frameworkName + ".Ref" ) ;
127
+ if ( Directory . Exists ( packsFolder ) )
137
128
{
138
- // Adapted from https://github.com/dotnet/sdk/blob/c3a8f72c3a5491c693ff8e49e7406136a12c3040/src/Tasks/Common/ConflictResolution/PackageOverride.cs#L52-L68
139
- var packageOverrides = File . ReadAllLines ( packageOverridesFile ) ;
140
-
141
- foreach ( var packageOverride in packageOverrides )
129
+ var packVersionPattern = $ "{ framework . Version . Major } .{ framework . Version . Minor } .*";
130
+ var packDirectories = Directory . GetDirectories ( packsFolder , packVersionPattern ) ;
131
+ var packageOverridesFile = packDirectories
132
+ . Select ( d => ( Overrides : Path . Combine ( d , "data" , "PackageOverrides.txt" ) , Version : ParseVersion ( Path . GetFileName ( d ) ) ) )
133
+ . Where ( d => File . Exists ( d . Overrides ) )
134
+ . OrderByDescending ( d => d . Version )
135
+ . FirstOrDefault ( ) . Overrides ;
136
+
137
+ if ( packageOverridesFile is not null )
142
138
{
143
- var packageOverrideParts = packageOverride . Trim ( ) . Split ( '|' ) ;
139
+ // Adapted from https://github.com/dotnet/sdk/blob/c3a8f72c3a5491c693ff8e49e7406136a12c3040/src/Tasks/Common/ConflictResolution/PackageOverride.cs#L52-L68
140
+ var packageOverrides = File . ReadAllLines ( packageOverridesFile ) ;
144
141
145
- if ( packageOverrideParts . Length == 2 )
142
+ foreach ( var packageOverride in packageOverrides )
146
143
{
147
- var packageId = packageOverrideParts [ 0 ] ;
148
- var packageVersion = ParseVersion ( packageOverrideParts [ 1 ] ) ;
144
+ var packageOverrideParts = packageOverride . Trim ( ) . Split ( '|' ) ;
145
+
146
+ if ( packageOverrideParts . Length == 2 )
147
+ {
148
+ var packageId = packageOverrideParts [ 0 ] ;
149
+ var packageVersion = ParseVersion ( packageOverrideParts [ 1 ] ) ;
149
150
150
- frameworkPackages . Packages [ packageId ] = packageVersion ;
151
+ frameworkPackages . Packages [ packageId ] = packageVersion ;
152
+ }
151
153
}
152
154
}
153
155
}
0 commit comments