@@ -650,12 +650,6 @@ private void AnalyseProject(FileInfo project)
650650
651651 }
652652
653- private bool RestoreProject ( string project , bool forceDotnetRefAssemblyFetching , out IEnumerable < string > assets , string ? pathToNugetConfig = null ) =>
654- dotnet . RestoreProjectToDirectory ( project , packageDirectory . DirInfo . FullName , forceDotnetRefAssemblyFetching , out assets , pathToNugetConfig ) ;
655-
656- private bool RestoreSolution ( string solution , out IEnumerable < string > projects , out IEnumerable < string > assets ) =>
657- dotnet . RestoreSolutionToDirectory ( solution , packageDirectory . DirInfo . FullName , forceDotnetRefAssemblyFetching : true , out projects , out assets ) ;
658-
659653 /// <summary>
660654 /// Executes `dotnet restore` on all solution files in solutions.
661655 /// As opposed to RestoreProjects this is not run in parallel using PLINQ
@@ -670,7 +664,7 @@ private IEnumerable<string> RestoreSolutions(IEnumerable<string> solutions, out
670664 var assetFiles = new List < string > ( ) ;
671665 var projects = solutions . SelectMany ( solution =>
672666 {
673- RestoreSolution ( solution , out var restoredProjects , out var a ) ;
667+ dotnet . RestoreSolutionToDirectory ( solution , packageDirectory . DirInfo . FullName , forceDotnetRefAssemblyFetching : true , out var restoredProjects , out var a ) ;
674668 assetFiles . AddRange ( a ) ;
675669 return restoredProjects ;
676670 } ) ;
@@ -689,7 +683,7 @@ private void RestoreProjects(IEnumerable<string> projects, out IEnumerable<strin
689683 var assetFiles = new List < string > ( ) ;
690684 Parallel . ForEach ( projects , new ParallelOptions { MaxDegreeOfParallelism = options . Threads } , project =>
691685 {
692- RestoreProject ( project , forceDotnetRefAssemblyFetching : true , out var a ) ;
686+ dotnet . RestoreProjectToDirectory ( project , packageDirectory . DirInfo . FullName , forceDotnetRefAssemblyFetching : true , out var a , out var _ ) ;
693687 assetFiles . AddRange ( a ) ;
694688 } ) ;
695689 assets = assetFiles ;
@@ -736,11 +730,21 @@ private void DownloadMissingPackages(List<FileInfo> allFiles, ISet<string> dllPa
736730 return ;
737731 }
738732
739- dotnet . RestoreProjectToDirectory ( tempDir . DirInfo . FullName , missingPackageDirectory . DirInfo . FullName , forceDotnetRefAssemblyFetching : false , out var _ , pathToNugetConfig : nugetConfig ) ;
740- // TODO: the restore might fail, we could retry with a prerelease (*-* instead of *) version of the package.
733+ success = dotnet . RestoreProjectToDirectory ( tempDir . DirInfo . FullName , missingPackageDirectory . DirInfo . FullName , forceDotnetRefAssemblyFetching : false , out var _ , out var outputLines , pathToNugetConfig : nugetConfig ) ;
741734 if ( ! success )
742735 {
743- progressMonitor . FailedToRestoreNugetPackage ( package ) ;
736+ if ( outputLines ? . Any ( s => s . Contains ( "NU1301" ) ) == true )
737+ {
738+ // Restore could not be completed because the listed source is unavailable. Try without the nuget.config:
739+ success = dotnet . RestoreProjectToDirectory ( tempDir . DirInfo . FullName , missingPackageDirectory . DirInfo . FullName , forceDotnetRefAssemblyFetching : false , out var _ , out var _ , pathToNugetConfig : null , force : true ) ;
740+ }
741+
742+ // TODO: the restore might fail, we could retry with a prerelease (*-* instead of *) version of the package.
743+
744+ if ( ! success )
745+ {
746+ progressMonitor . FailedToRestoreNugetPackage ( package ) ;
747+ }
744748 }
745749 } ) ;
746750
0 commit comments