Skip to content

Commit 5c05a4c

Browse files
committed
Restore nuget.exe and dotnet restore packages to separate folders
1 parent d44d980 commit 5c05a4c

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

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

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ public sealed class DependencyManager : IDisposable
3131
private readonly IDotNet dotnet;
3232
private readonly FileContent fileContent;
3333
private readonly TemporaryDirectory packageDirectory;
34+
private readonly TemporaryDirectory legacyPackageDirectory;
3435
private readonly TemporaryDirectory missingPackageDirectory;
3536
private readonly TemporaryDirectory tempWorkingDirectory;
3637
private readonly bool cleanupTempWorkingDirectory;
@@ -52,6 +53,7 @@ public DependencyManager(string srcDir, IDependencyOptions options, ILogger logg
5253
this.sourceDir = new DirectoryInfo(srcDir);
5354

5455
packageDirectory = new TemporaryDirectory(ComputeTempDirectory(sourceDir.FullName));
56+
legacyPackageDirectory = new TemporaryDirectory(ComputeTempDirectory(sourceDir.FullName, "legacypackages"));
5557
missingPackageDirectory = new TemporaryDirectory(ComputeTempDirectory(sourceDir.FullName, "missingpackages"));
5658

5759
tempWorkingDirectory = new TemporaryDirectory(FileUtils.GetTemporaryWorkingDirectory(out cleanupTempWorkingDirectory));
@@ -89,17 +91,17 @@ public DependencyManager(string srcDir, IDependencyOptions options, ILogger logg
8991
{
9092
try
9193
{
92-
var nuget = new NugetPackages(sourceDir.FullName, packageDirectory, progressMonitor);
94+
var nuget = new NugetPackages(sourceDir.FullName, legacyPackageDirectory, progressMonitor);
9395
nuget.InstallPackages();
9496

95-
var nugetPackageDlls = packageDirectory.DirInfo.GetFiles("*.dll", new EnumerationOptions { RecurseSubdirectories = true });
97+
var nugetPackageDlls = legacyPackageDirectory.DirInfo.GetFiles("*.dll", new EnumerationOptions { RecurseSubdirectories = true });
9698
var nugetPackageDllPaths = nugetPackageDlls.Select(f => f.FullName).ToHashSet();
9799
var excludedPaths = nugetPackageDllPaths
98-
.Where(path => IsPathInSubfolder(path, packageDirectory.DirInfo.FullName, "tools"));
100+
.Where(path => IsPathInSubfolder(path, legacyPackageDirectory.DirInfo.FullName, "tools"));
99101

100102
foreach (var excludedPath in excludedPaths)
101103
{
102-
progressMonitor.LogInfo($"Excluded DLL: {excludedPath}");
104+
progressMonitor.LogInfo($"Excluded Nuget DLL: {excludedPath}");
103105
}
104106

105107
nugetPackageDllPaths.ExceptWith(excludedPaths);
@@ -761,6 +763,7 @@ public void Dispose(TemporaryDirectory? dir, string name)
761763
public void Dispose()
762764
{
763765
Dispose(packageDirectory, "package");
766+
Dispose(legacyPackageDirectory, "legacy package");
764767
Dispose(missingPackageDirectory, "missing package");
765768
if (cleanupTempWorkingDirectory)
766769
{

csharp/ql/integration-tests/posix-only/standalone_dependencies_nuget/Assemblies.ql

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,15 @@ private string getPath(Assembly a) {
66
result =
77
s.substring(s.indexOf("GitHub/packages/") + "GitHub/packages/".length() + 16, s.length())
88
or
9+
result =
10+
s.substring(s.indexOf("GitHub/legacypackages/") + "GitHub/legacypackages/".length() + 16,
11+
s.length())
12+
or
913
result = s.substring(s.indexOf("lib/mono/") + "lib/mono/".length(), s.length())
1014
or
1115
result = s and
1216
not exists(s.indexOf("GitHub/packages/")) and
17+
not exists(s.indexOf("GitHub/legacypackages/")) and
1318
not exists(s.indexOf("lib/mono/"))
1419
)
1520
}

0 commit comments

Comments
 (0)