Skip to content

Commit 40bf5c1

Browse files
authored
Merge pull request #14273 from tamasvajk/standalone/remove-runtime-nuget-packages
C#: Remove platform-specific runtime nuget packages from the reference list in Standalone
2 parents 0783d7b + d29585c commit 40bf5c1

File tree

2 files changed

+31
-0
lines changed

2 files changed

+31
-0
lines changed

csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ public DependencyManager(string srcDir, IDependencyOptions options, ILogger logg
116116
UseReference(filename);
117117
}
118118

119+
RemoveRuntimeNugetPackageReferences();
119120
ResolveConflicts();
120121

121122
// Output the findings
@@ -150,6 +151,33 @@ public DependencyManager(string srcDir, IDependencyOptions options, ILogger logg
150151
DateTime.Now - startTime);
151152
}
152153

154+
private void RemoveRuntimeNugetPackageReferences()
155+
{
156+
if (!options.UseNuGet)
157+
{
158+
return;
159+
}
160+
161+
var packageFolder = packageDirectory.DirInfo.FullName.ToLowerInvariant();
162+
var runtimePackageNamePrefixes = new[]
163+
{
164+
Path.Combine(packageFolder, "microsoft.netcore.app.runtime"),
165+
Path.Combine(packageFolder, "microsoft.aspnetcore.app.runtime"),
166+
Path.Combine(packageFolder, "microsoft.windowsdesktop.app.runtime"),
167+
};
168+
169+
foreach (var filename in usedReferences.Keys)
170+
{
171+
var lowerFilename = filename.ToLowerInvariant();
172+
173+
if (runtimePackageNamePrefixes.Any(prefix => lowerFilename.StartsWith(prefix)))
174+
{
175+
usedReferences.Remove(filename);
176+
progressMonitor.RemovedReference(filename);
177+
}
178+
}
179+
}
180+
153181
private void GenerateSourceFileFromImplicitUsings()
154182
{
155183
var usings = new HashSet<string>();

csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/ProgressMonitor.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,9 @@ public void NugetInstall(string package) =>
5757
public void ResolvedReference(string filename) =>
5858
LogInfo($"Resolved {filename}");
5959

60+
public void RemovedReference(string filename) =>
61+
LogInfo($"Reference {filename} has been removed");
62+
6063
public void Summary(int existingSources, int usedSources, int missingSources,
6164
int references, int unresolvedReferences,
6265
int resolvedConflicts, int totalProjects, int failedProjects,

0 commit comments

Comments
 (0)