Skip to content

Commit 129de20

Browse files
committed
Honor the CLI --target-framework argument
Use this over the project configuration. Signed-off-by: Philippe Ombredanne <pombredanne@nexb.com>
1 parent 51e75ed commit 129de20

4 files changed

Lines changed: 2761 additions & 23 deletions

File tree

src/nuget-inspector/ProjectScanner.cs

Lines changed: 27 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)