@@ -27,6 +27,7 @@ internal sealed partial class NugetPackageRestorer : IDisposable
2727 private readonly IDiagnosticsWriter diagnosticsWriter ;
2828 private readonly DependencyDirectory legacyPackageDirectory ;
2929 private readonly DependencyDirectory missingPackageDirectory ;
30+ private readonly DependencyDirectory emptyPackageDirectory ;
3031 private readonly ILogger logger ;
3132 private readonly ICompilationInfoContainer compilationInfoContainer ;
3233 private readonly Lazy < bool > lazyCheckNugetFeedResponsiveness = new ( ( ) => EnvironmentVariables . GetBooleanOptOut ( EnvironmentVariableNames . CheckNugetFeedResponsiveness ) ) ;
@@ -56,6 +57,7 @@ public NugetPackageRestorer(
5657 PackageDirectory = new DependencyDirectory ( "packages" , "package" , logger ) ;
5758 legacyPackageDirectory = new DependencyDirectory ( "legacypackages" , "legacy package" , logger ) ;
5859 missingPackageDirectory = new DependencyDirectory ( "missingpackages" , "missing package" , logger ) ;
60+ emptyPackageDirectory = new DependencyDirectory ( "empty" , "empty package" , logger ) ;
5961 }
6062
6163 public string ? TryRestore ( string package )
@@ -323,6 +325,12 @@ private IEnumerable<string> RestoreSolutions(string? nugetSources, out Dependenc
323325
324326 private string ? MakeRestoreSourcesArgument ( IEnumerable < string > feeds )
325327 {
328+ // If there are no feeds, we want to override any default feeds that `dotnet restore` would use by passing a dummy source argument.
329+ if ( ! feeds . Any ( ) )
330+ {
331+ return $ " -s \" { emptyPackageDirectory . DirInfo . FullName } \" ";
332+ }
333+
326334 // Add package sources. If any are present, they override all sources specified in
327335 // the configuration file(s).
328336 var feedArgs = new StringBuilder ( ) ;
@@ -973,6 +981,7 @@ public void Dispose()
973981 PackageDirectory ? . Dispose ( ) ;
974982 legacyPackageDirectory ? . Dispose ( ) ;
975983 missingPackageDirectory ? . Dispose ( ) ;
984+ emptyPackageDirectory ? . Dispose ( ) ;
976985 }
977986
978987 /// <summary>
0 commit comments