NuGet/Home

Restore should fail when a non-existent fallback folder is provided

Open

#7,012 opened on Jun 8, 2018

View on GitHub
 (22 comments) (0 reactions) (0 assignees)HTML (1,459 stars) (292 forks)batch import
Functionality:RestorePartner:CLI-SDKPriority:3Type:Bughelp wanted

Description

MSBuild 15.7.179.6572

MSBuild of an SDK-style project with PackageReference fails because the generated .csproj.nuget.g.props file contains this line:

<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\kirillo\.nuget\packages\;C:\Program Files (x86)\Microsoft SDKs\NuGetPackagesFallback\</NuGetPackageFolders>

The NuGetPackagesFallback folder doesn't exist on my machine, causing NuGet to fail the build with the exception:

C:\Program Files\dotnet\sdk\2.1.201\Sdks\Microsoft.NET.Sdk\build\Microsoft.PackageDependencyResolution.targets(172,5): error MSB4018: The "ResolvePackageDependencies" task failed unexpectedly.
NuGet.Packaging.Core.PackagingException: Unable to find fallback package folder 'C:\Program Files (x86)\Microsoft SDKs\NuGetPackagesFallback\'.
   at NuGet.Packaging.FallbackPackagePathResolver..ctor(String userPackageFolder, IEnumerable`1 fallbackPackageFolders)
   at Microsoft.NET.Build.Tasks.NuGetPackageResolver.CreateResolver(LockFile lockFile, String projectPath)
   at Microsoft.NET.Build.Tasks.ResolvePackageDependencies.get_PackageResolver()
   at Microsoft.NET.Build.Tasks.ResolvePackageDependencies.ResolvePackagePath(LockFileLibrary package)
   at Microsoft.NET.Build.Tasks.ResolvePackageDependencies.GetPackageAndFileDefinitions()
   at Microsoft.NET.Build.Tasks.ResolvePackageDependencies.ExecuteCore()
   at Microsoft.NET.Build.Tasks.TaskBase.Execute()
   at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
   at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext() [C:\monodevelop\main\external\RefactoringEssentials\RefactoringEssentials\RefactoringEssentials.csproj]

None of the nuget.config files on my machine contain anything related to the fallback folder.

I don't have any environment variables set that start with NuGet*.

My VS offline package cache is a similar folder, but without the fallback: image

Why does NuGet decide to generate that non-existing folder into my .g.props files?

Where does that value come from?

Contributor guide