Skip to content

Commit c68d36e

Browse files
committed
Remove restored framework packages when user specified framework folders
1 parent ce0159c commit c68d36e

File tree

3 files changed

+17
-172
lines changed

3 files changed

+17
-172
lines changed

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

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,10 @@ private HashSet<string> AddFrameworkDlls(HashSet<string> dllPaths)
163163
_ = bool.TryParse(frameworkReferencesUseSubfolders, out var useSubfolders);
164164
if (!string.IsNullOrWhiteSpace(frameworkReferences))
165165
{
166+
RemoveFrameworkNugetPackages(dllPaths);
167+
RemoveNugetPackageReference(FrameworkPackageNames.AspNetCoreFramework, dllPaths);
168+
RemoveNugetPackageReference(FrameworkPackageNames.WindowsDesktopFramework, dllPaths);
169+
166170
var frameworkPaths = frameworkReferences.Split(FileUtils.NewLineCharacters, StringSplitOptions.RemoveEmptyEntries);
167171

168172
foreach (var path in frameworkPaths)
@@ -246,9 +250,9 @@ private void RestoreNugetPackages(List<FileInfo> allNonBinaryFiles, IEnumerable<
246250
nugetPackageDllPaths.ExceptWith(excludedPaths);
247251
dllPaths.UnionWith(nugetPackageDllPaths);
248252
}
249-
catch (Exception)
253+
catch (Exception exc)
250254
{
251-
logger.LogError("Failed to restore Nuget packages with nuget.exe");
255+
logger.LogError($"Failed to restore Nuget packages with nuget.exe: {exc.Message}");
252256
}
253257

254258
var restoredProjects = RestoreSolutions(allSolutions, out var assets1);
@@ -339,6 +343,15 @@ private static DirectoryInfo[] GetPackageVersionSubDirectories(string packagePat
339343
.ToArray();
340344
}
341345

346+
private void RemoveFrameworkNugetPackages(ISet<string> dllPaths, int fromIndex = 0)
347+
{
348+
var packagesInPrioOrder = FrameworkPackageNames.NetFrameworks;
349+
for (var i = fromIndex; i < packagesInPrioOrder.Length; i++)
350+
{
351+
RemoveNugetPackageReference(packagesInPrioOrder[i], dllPaths);
352+
}
353+
}
354+
342355
private void AddNetFrameworkDlls(ISet<string> dllPaths, ISet<string> frameworkLocations)
343356
{
344357
// Multiple dotnet framework packages could be present.
@@ -360,12 +373,7 @@ private void AddNetFrameworkDlls(ISet<string> dllPaths, ISet<string> frameworkLo
360373
}
361374

362375
SelectNewestFrameworkPath(frameworkPath.Path, ".NET Framework", dllPaths, frameworkLocations);
363-
364-
for (var i = frameworkPath.Index + 1; i < packagesInPrioOrder.Length; i++)
365-
{
366-
RemoveNugetPackageReference(packagesInPrioOrder[i], dllPaths);
367-
}
368-
376+
RemoveFrameworkNugetPackages(dllPaths, frameworkPath.Index + 1);
369377
return;
370378
}
371379

Lines changed: 0 additions & 163 deletions
Original file line numberDiff line numberDiff line change
@@ -1,164 +1 @@
1-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/Microsoft.CSharp.dll |
2-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/Microsoft.VisualBasic.Core.dll |
3-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/Microsoft.VisualBasic.dll |
4-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/Microsoft.Win32.Primitives.dll |
5-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/Microsoft.Win32.Registry.dll |
6-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.AppContext.dll |
7-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Buffers.dll |
8-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Collections.Concurrent.dll |
9-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Collections.Immutable.dll |
10-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Collections.NonGeneric.dll |
11-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Collections.Specialized.dll |
12-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Collections.dll |
13-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.ComponentModel.Annotations.dll |
14-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.ComponentModel.DataAnnotations.dll |
15-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.ComponentModel.EventBasedAsync.dll |
16-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.ComponentModel.Primitives.dll |
17-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.ComponentModel.TypeConverter.dll |
18-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.ComponentModel.dll |
19-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Configuration.dll |
20-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Console.dll |
21-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Core.dll |
22-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Data.Common.dll |
23-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Data.DataSetExtensions.dll |
24-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Data.dll |
25-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Diagnostics.Contracts.dll |
26-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Diagnostics.Debug.dll |
27-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Diagnostics.DiagnosticSource.dll |
28-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Diagnostics.FileVersionInfo.dll |
29-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Diagnostics.Process.dll |
30-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Diagnostics.StackTrace.dll |
31-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Diagnostics.TextWriterTraceListener.dll |
32-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Diagnostics.Tools.dll |
33-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Diagnostics.TraceSource.dll |
34-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Diagnostics.Tracing.dll |
35-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Drawing.Primitives.dll |
36-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Drawing.dll |
37-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Dynamic.Runtime.dll |
38-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Formats.Asn1.dll |
39-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Formats.Tar.dll |
40-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Globalization.Calendars.dll |
41-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Globalization.Extensions.dll |
42-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Globalization.dll |
43-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.IO.Compression.Brotli.dll |
44-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.IO.Compression.FileSystem.dll |
45-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.IO.Compression.ZipFile.dll |
46-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.IO.Compression.dll |
47-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.IO.FileSystem.AccessControl.dll |
48-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.IO.FileSystem.DriveInfo.dll |
49-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.IO.FileSystem.Primitives.dll |
50-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.IO.FileSystem.Watcher.dll |
51-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.IO.FileSystem.dll |
52-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.IO.IsolatedStorage.dll |
53-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.IO.MemoryMappedFiles.dll |
54-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.IO.Pipes.AccessControl.dll |
55-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.IO.Pipes.dll |
56-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.IO.UnmanagedMemoryStream.dll |
57-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.IO.dll |
58-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Linq.Expressions.dll |
59-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Linq.Parallel.dll |
60-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Linq.Queryable.dll |
61-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Linq.dll |
62-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Memory.dll |
63-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Net.Http.Json.dll |
64-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Net.Http.dll |
65-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Net.HttpListener.dll |
66-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Net.Mail.dll |
67-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Net.NameResolution.dll |
68-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Net.NetworkInformation.dll |
69-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Net.Ping.dll |
70-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Net.Primitives.dll |
71-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Net.Quic.dll |
72-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Net.Requests.dll |
73-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Net.Security.dll |
74-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Net.ServicePoint.dll |
75-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Net.Sockets.dll |
76-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Net.WebClient.dll |
77-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Net.WebHeaderCollection.dll |
78-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Net.WebProxy.dll |
79-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Net.WebSockets.Client.dll |
80-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Net.WebSockets.dll |
81-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Net.dll |
82-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Numerics.Vectors.dll |
83-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Numerics.dll |
84-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.ObjectModel.dll |
85-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Reflection.DispatchProxy.dll |
86-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Reflection.Emit.ILGeneration.dll |
87-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Reflection.Emit.Lightweight.dll |
88-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Reflection.Emit.dll |
89-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Reflection.Extensions.dll |
90-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Reflection.Metadata.dll |
91-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Reflection.Primitives.dll |
92-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Reflection.TypeExtensions.dll |
93-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Reflection.dll |
94-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Resources.Reader.dll |
95-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Resources.ResourceManager.dll |
96-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Resources.Writer.dll |
97-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Runtime.CompilerServices.Unsafe.dll |
98-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Runtime.CompilerServices.VisualC.dll |
99-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Runtime.Extensions.dll |
100-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Runtime.Handles.dll |
101-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Runtime.InteropServices.JavaScript.dll |
102-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Runtime.InteropServices.RuntimeInformation.dll |
103-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Runtime.InteropServices.dll |
104-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Runtime.Intrinsics.dll |
105-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Runtime.Loader.dll |
106-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Runtime.Numerics.dll |
107-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Runtime.Serialization.Formatters.dll |
108-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Runtime.Serialization.Json.dll |
109-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Runtime.Serialization.Primitives.dll |
110-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Runtime.Serialization.Xml.dll |
111-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Runtime.Serialization.dll |
112-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Runtime.dll |
113-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Security.AccessControl.dll |
114-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Security.Claims.dll |
115-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Security.Cryptography.Algorithms.dll |
116-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Security.Cryptography.Cng.dll |
117-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Security.Cryptography.Csp.dll |
118-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Security.Cryptography.Encoding.dll |
119-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Security.Cryptography.OpenSsl.dll |
120-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Security.Cryptography.Primitives.dll |
121-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Security.Cryptography.X509Certificates.dll |
122-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Security.Cryptography.dll |
123-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Security.Principal.Windows.dll |
124-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Security.Principal.dll |
125-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Security.SecureString.dll |
126-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Security.dll |
127-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.ServiceModel.Web.dll |
128-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.ServiceProcess.dll |
129-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Text.Encoding.CodePages.dll |
130-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Text.Encoding.Extensions.dll |
131-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Text.Encoding.dll |
132-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Text.Encodings.Web.dll |
133-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Text.Json.dll |
134-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Text.RegularExpressions.dll |
135-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Threading.Channels.dll |
136-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Threading.Overlapped.dll |
137-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Threading.Tasks.Dataflow.dll |
138-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Threading.Tasks.Extensions.dll |
139-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Threading.Tasks.Parallel.dll |
140-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Threading.Tasks.dll |
141-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Threading.Thread.dll |
142-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Threading.ThreadPool.dll |
143-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Threading.Timer.dll |
144-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Threading.dll |
145-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Transactions.Local.dll |
146-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Transactions.dll |
147-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.ValueTuple.dll |
148-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Web.HttpUtility.dll |
149-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Web.dll |
150-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Windows.dll |
151-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Xml.Linq.dll |
152-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Xml.ReaderWriter.dll |
153-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Xml.Serialization.dll |
154-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Xml.XDocument.dll |
155-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Xml.XPath.XDocument.dll |
156-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Xml.XPath.dll |
157-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Xml.XmlDocument.dll |
158-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Xml.XmlSerializer.dll |
159-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.Xml.dll |
160-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/System.dll |
161-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/WindowsBase.dll |
162-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/mscorlib.dll |
163-
| /packages/microsoft.netcore.app.ref/8.0.1/ref/net8.0/netstandard.dll |
1641
| /packages/newtonsoft.json/6.0.4/lib/net45/Newtonsoft.Json.dll |

csharp/ql/integration-tests/posix-only/standalone_dependencies_no_framework/test_sdk.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<Project Sdk="Microsoft.NET.Sdk">
1+
<Project Sdk="Microsoft.NET.Sdk.Web">
22

33
<PropertyGroup>
44
<OutputType>Exe</OutputType>

0 commit comments

Comments
 (0)