@@ -99,15 +99,22 @@ public DependencyManager(string srcDir, IDependencyOptions options, ILogger logg
9999
100100 var existsNetCoreRefNugetPackage = false ;
101101 var existsNetFrameworkRefNugetPackage = false ;
102+ var existsNetstandardLibRefNugetPackage = false ;
103+ var existsNetstandardLibNugetPackage = false ;
102104
103105 // Find DLLs in the .Net / Asp.Net Framework
104106 // This block needs to come after the nuget restore, because the nuget restore might fetch the .NET Core/Framework reference assemblies.
105107 if ( options . ScanNetFrameworkDlls )
106108 {
107109 existsNetCoreRefNugetPackage = IsNugetPackageAvailable ( "microsoft.netcore.app.ref" ) ;
108110 existsNetFrameworkRefNugetPackage = IsNugetPackageAvailable ( "microsoft.netframework.referenceassemblies" ) ;
111+ existsNetstandardLibRefNugetPackage = IsNugetPackageAvailable ( "netstandard.library.ref" ) ;
112+ existsNetstandardLibNugetPackage = IsNugetPackageAvailable ( "netstandard.library" ) ;
109113
110- if ( existsNetCoreRefNugetPackage || existsNetFrameworkRefNugetPackage )
114+ if ( existsNetCoreRefNugetPackage
115+ || existsNetFrameworkRefNugetPackage
116+ || existsNetstandardLibRefNugetPackage
117+ || existsNetstandardLibNugetPackage )
111118 {
112119 progressMonitor . LogInfo ( "Found .NET Core/Framework DLLs in NuGet packages. Not adding installation directory." ) ;
113120 }
@@ -125,7 +132,7 @@ public DependencyManager(string srcDir, IDependencyOptions options, ILogger logg
125132 UseReference ( filename ) ;
126133 }
127134
128- RemoveUnnecessaryNugetPackages ( existsNetCoreRefNugetPackage , existsNetFrameworkRefNugetPackage ) ;
135+ RemoveUnnecessaryNugetPackages ( existsNetCoreRefNugetPackage , existsNetFrameworkRefNugetPackage , existsNetstandardLibRefNugetPackage , existsNetstandardLibNugetPackage ) ;
129136 ResolveConflicts ( ) ;
130137
131138 // Output the findings
@@ -160,7 +167,8 @@ public DependencyManager(string srcDir, IDependencyOptions options, ILogger logg
160167 DateTime . Now - startTime ) ;
161168 }
162169
163- private void RemoveUnnecessaryNugetPackages ( bool existsNetCoreRefNugetPackage , bool existsNetFrameworkRefNugetPackage )
170+ private void RemoveUnnecessaryNugetPackages ( bool existsNetCoreRefNugetPackage , bool existsNetFrameworkRefNugetPackage ,
171+ bool existsNetstandardLibRefNugetPackage , bool existsNetstandardLibNugetPackage )
164172 {
165173 RemoveNugetAnalyzerReferences ( ) ;
166174 RemoveRuntimeNugetPackageReferences ( ) ;
@@ -172,10 +180,30 @@ private void RemoveUnnecessaryNugetPackages(bool existsNetCoreRefNugetPackage, b
172180 RemoveNugetPackageReference ( "microsoft.aspnetcore.app.ref" ) ;
173181 }
174182
175- if ( existsNetCoreRefNugetPackage && existsNetFrameworkRefNugetPackage )
183+ // Multiple packages are available, we keep only one:
184+ if ( existsNetCoreRefNugetPackage )
176185 {
177- // Multiple packages are available, we keep only one:
178- RemoveNugetPackageReference ( "microsoft.netframework.referenceassemblies." ) ;
186+ if ( existsNetFrameworkRefNugetPackage )
187+ RemoveNugetPackageReference ( "microsoft.netframework.referenceassemblies." ) ;
188+
189+ if ( existsNetstandardLibRefNugetPackage )
190+ RemoveNugetPackageReference ( "netstandard.library.ref" ) ;
191+
192+ if ( existsNetstandardLibNugetPackage )
193+ RemoveNugetPackageReference ( "netstandard.library" ) ;
194+ }
195+ else if ( existsNetFrameworkRefNugetPackage )
196+ {
197+ if ( existsNetstandardLibRefNugetPackage )
198+ RemoveNugetPackageReference ( "netstandard.library.ref" ) ;
199+
200+ if ( existsNetstandardLibNugetPackage )
201+ RemoveNugetPackageReference ( "netstandard.library" ) ;
202+ }
203+ else if ( existsNetstandardLibRefNugetPackage )
204+ {
205+ if ( existsNetstandardLibNugetPackage )
206+ RemoveNugetPackageReference ( "netstandard.library" ) ;
179207 }
180208
181209 // TODO: There could be multiple `microsoft.netframework.referenceassemblies` packages,
@@ -268,8 +296,7 @@ private void RemoveRuntimeNugetPackageReferences()
268296 "runtime.win-x64.microsoft.netcore.app" ,
269297
270298 // Internal implementation packages not meant for direct consumption:
271- "runtime." ,
272- "netstandard.library.ref"
299+ "runtime."
273300 } ;
274301 RemoveNugetPackageReference ( runtimePackagePrefixes ) ;
275302 }
0 commit comments