Compare commits

...

2 Commits

Author SHA1 Message Date
Michael B. Gale
1b6c0c7d8e Recognise NU1801 in addition to NU1301 2026-02-28 20:01:57 +00:00
Michael B. Gale
9a9f88a7f2 Use /p:RestoreIgnoreFailedSources=true for dotnet restore 2026-02-27 14:51:00 +00:00
3 changed files with 8 additions and 6 deletions

View File

@@ -66,6 +66,7 @@ namespace Semmle.Extraction.CSharp.DependencyFetching
private string GetRestoreArgs(RestoreSettings restoreSettings)
{
var args = $"restore --no-dependencies \"{restoreSettings.File}\" --packages \"{restoreSettings.PackageDirectory}\" /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal";
args += " /p:RestoreIgnoreFailedSources=true";
if (restoreSettings.ForceDotnetRefAssemblyFetching)
{

View File

@@ -27,7 +27,8 @@ namespace Semmle.Extraction.CSharp.DependencyFetching
private readonly Lazy<IEnumerable<string>> restoredProjects = new(() => GetFirstGroupOnMatch(RestoredProjectRegex(), Output));
public IEnumerable<string> RestoredProjects => Success ? restoredProjects.Value : Array.Empty<string>();
private readonly Lazy<bool> hasNugetPackageSourceError = new(() => Output.Any(s => s.Contains("NU1301")));
// NU1301 is the error and NU1801 is the equivalent warning.
private readonly Lazy<bool> hasNugetPackageSourceError = new(() => Output.Any(s => s.Contains("NU1301") || s.Contains("NU1801")));
public bool HasNugetPackageSourceError => hasNugetPackageSourceError.Value;
private readonly Lazy<bool> hasNugetNoStablePackageVersionError = new(() => Output.Any(s => s.Contains("NU1103")));

View File

@@ -119,7 +119,7 @@ namespace Semmle.Extraction.Tests
// Verify
var lastArgs = dotnetCliInvoker.GetLastArgs();
Assert.Equal("restore --no-dependencies \"myproject.csproj\" --packages \"mypackages\" /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal", lastArgs);
Assert.Equal("restore --no-dependencies \"myproject.csproj\" --packages \"mypackages\" /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal /p:RestoreIgnoreFailedSources=true", lastArgs);
}
[Fact]
@@ -134,7 +134,7 @@ namespace Semmle.Extraction.Tests
// Verify
var lastArgs = dotnetCliInvoker.GetLastArgs();
Assert.Equal("restore --no-dependencies \"myproject.csproj\" --packages \"mypackages\" /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile \"myconfig.config\"", lastArgs);
Assert.Equal("restore --no-dependencies \"myproject.csproj\" --packages \"mypackages\" /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal /p:RestoreIgnoreFailedSources=true --configfile \"myconfig.config\"", lastArgs);
Assert.Equal(2, res.AssetsFilePaths.Count());
Assert.Contains("/path/to/project.assets.json", res.AssetsFilePaths);
Assert.Contains("/path/to/project2.assets.json", res.AssetsFilePaths);
@@ -152,7 +152,7 @@ namespace Semmle.Extraction.Tests
// Verify
var lastArgs = dotnetCliInvoker.GetLastArgs();
Assert.Equal("restore --no-dependencies \"myproject.csproj\" --packages \"mypackages\" /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal --configfile \"myconfig.config\" --force", lastArgs);
Assert.Equal("restore --no-dependencies \"myproject.csproj\" --packages \"mypackages\" /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal /p:RestoreIgnoreFailedSources=true --configfile \"myconfig.config\" --force", lastArgs);
Assert.Equal(2, res.AssetsFilePaths.Count());
Assert.Contains("/path/to/project.assets.json", res.AssetsFilePaths);
Assert.Contains("/path/to/project2.assets.json", res.AssetsFilePaths);
@@ -170,7 +170,7 @@ namespace Semmle.Extraction.Tests
// Verify
var lastArgs = dotnetCliInvoker.GetLastArgs();
Assert.Equal("restore --no-dependencies \"mysolution.sln\" --packages \"mypackages\" /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal", lastArgs);
Assert.Equal("restore --no-dependencies \"mysolution.sln\" --packages \"mypackages\" /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal /p:RestoreIgnoreFailedSources=true", lastArgs);
Assert.Equal(2, res.RestoredProjects.Count());
Assert.Contains("/path/to/project.csproj", res.RestoredProjects);
Assert.Contains("/path/to/project2.csproj", res.RestoredProjects);
@@ -192,7 +192,7 @@ namespace Semmle.Extraction.Tests
// Verify
var lastArgs = dotnetCliInvoker.GetLastArgs();
Assert.Equal("restore --no-dependencies \"mysolution.sln\" --packages \"mypackages\" /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal", lastArgs);
Assert.Equal("restore --no-dependencies \"mysolution.sln\" --packages \"mypackages\" /p:DisableImplicitNuGetFallbackFolder=true --verbosity normal /p:RestoreIgnoreFailedSources=true", lastArgs);
Assert.Empty(res.RestoredProjects);
Assert.Empty(res.AssetsFilePaths);
}