@@ -108,7 +108,7 @@ public ScanResult RunScan()
108108 {
109109 try
110110 {
111- var package = GetPackage ( ) ;
111+ var package = ScanProject ( ) ;
112112 List < BasePackage > packages = new List < BasePackage > ( ) ;
113113 if ( package != null )
114114 {
@@ -179,24 +179,38 @@ public void FetchMetadata(ScanResult scan_result)
179179 }
180180 }
181181
182-
183- public BasePackage ? GetPackage ( )
182+ /// <summary>
183+ /// Scan an return the root BasePackage being scanned for this project.
184+ /// </summary>
185+ /// <returns></returns>
186+ public BasePackage ? ScanProject ( )
184187 {
185- var stopWatch = Stopwatch . StartNew ( ) ;
188+ Stopwatch ? stopWatch = null ;
186189 if ( Config . TRACE )
187190 {
191+ stopWatch = Stopwatch . StartNew ( ) ;
188192 Console . WriteLine (
189- value :
190- $ "Processing Project: { Options . ProjectName } using Project Directory: { Options . ProjectDirectory } ") ;
193+ $ "Processing Project: { Options . ProjectName } using Directory: { Options . ProjectDirectory } ") ;
191194 }
192195
193196 var package = new BasePackage (
194197 name : Options . ProjectName ! ,
195198 version : Options . ProjectVersion ,
196199 datafile_path : Options . ProjectFilePath
197200 ) ;
201+ // Force using the provided framework if present
202+ NuGetFramework ? project_target_framework = null ;
203+ if ( ! string . IsNullOrWhiteSpace ( Options . TargetFramework ) )
204+ {
205+ string option_target_framework = Options . TargetFramework . ToLowerInvariant ( ) ;
206+ project_target_framework = NuGetFramework . ParseFolder ( folderName : option_target_framework ) ;
207+ }
208+ else
209+ {
210+ // use the 1st framework found in the project
211+ project_target_framework = ParseTargetFramework ( ) ;
212+ }
198213
199- var projectTargetFramework = ParseTargetFramework ( ) ;
200214 bool hasPackagesConfig = FileExists ( path : Options . PackagesConfigPath ! ) ;
201215 bool hasProjectAssetsJson = FileExists ( path : Options . ProjectAssetsJsonPath ! ) ;
202216 // legacy formats
@@ -264,7 +278,7 @@ public void FetchMetadata(ScanResult scan_result)
264278 var pkgRefResolver = new ProjFileStandardPackageReferenceHandler (
265279 projectPath : Options . ProjectFilePath ,
266280 nugetApi : NugetApiService ,
267- projectTargetFramework : projectTargetFramework ) ;
281+ projectTargetFramework : project_target_framework ) ;
268282
269283 var projectReferencesResult = pkgRefResolver . Resolve ( ) ;
270284
@@ -280,7 +294,7 @@ public void FetchMetadata(ScanResult scan_result)
280294 if ( Config . TRACE ) Console . WriteLine ( "Using Fallback XML project file reader and resolver." ) ;
281295 var xmlResolver =
282296 new ProjFileXmlParserPackageReferenceHandler ( projectPath : Options . ProjectFilePath ,
283- nugetApi : NugetApiService , projectTargetFramework : projectTargetFramework ) ;
297+ nugetApi : NugetApiService , projectTargetFramework : project_target_framework ) ;
284298 var xmlResult = xmlResolver . Resolve ( ) ;
285299 package . version = xmlResult . ProjectVersion ;
286300 package . packages = xmlResult . Packages ;
@@ -291,9 +305,8 @@ public void FetchMetadata(ScanResult scan_result)
291305
292306 if ( Config . TRACE )
293307 {
294- Console . WriteLine (
295- value : $ "Found #{ package . dependencies . Count } dependencies for #{ package . packages . Count } packages.") ;
296- Console . WriteLine ( $ "Project resolved: { Options . ProjectName } in { stopWatch . ElapsedMilliseconds } ms.") ;
308+ Console . WriteLine ( $ "Found #{ package . dependencies . Count } dependencies for #{ package . packages . Count } packages.") ;
309+ Console . WriteLine ( $ "Project resolved: { Options . ProjectName } in { stopWatch ! . ElapsedMilliseconds } ms.") ;
297310 }
298311
299312 return package ;
@@ -311,9 +324,8 @@ private static bool FileExists(string path)
311324
312325 private NuGetFramework ? ParseTargetFramework ( )
313326 {
314- var targetFramework = ExtractTargetFramework ( projectFilePath : Options . ProjectFilePath ) ;
315- var projectTargetFramework = NuGetFramework . ParseFolder ( folderName : targetFramework ) ;
316- return projectTargetFramework ;
327+ var target_framework = ExtractTargetFramework ( projectFilePath : Options . ProjectFilePath ) ;
328+ return NuGetFramework . ParseFolder ( folderName : target_framework ) ;
317329 }
318330
319331 /// <summary>
0 commit comments