How to enable nugets package restore in Visual Studio 2015?

51,530

Solution 1

I had the same problem as you and the way I solved it was to delete the packages folder from my solution and also bin and obj folders from every project in the solution and give it a rebuild.

Solution 2

As it turns out, the real solution is to migrate to Automatic Package Restore. We experienced issues with NuGet after upgrading to VS 2015 after working in 2013 for a while. Turns out the old way of doing NuGet completely hoses the new way of doing it.

The solution is simple, though tedious. Apparently the NuGet.targets file signals VS to use the old NuGet way of doing things, and it's absence means that you are now using "Automatic Package Restore". You can migrate to Automatic Package Restore by following these steps:

  1. Delete .nuget/NuGet.exe
  2. Delete .nuget/NuGet.targets
  3. For each project:
    1. Unload the project
    2. Right click -> Edit the project
    3. Delete all references to the NuGet.targets file, i.e. the following:
<RestorePackages>true</RestorePackages>  
...
<Import Project="$(SolutionDir)\.nuget\nuget.targets" />  
...
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">  
    <PropertyGroup>
        <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
    </PropertyGroup>
    <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
</Target>

There is also a powershell script that will perform the migration for you, if you are feeling bold. You can find it on github.

Solution 3

For others this option is available in the Nuget settings section in Visual Studio Options

enter image description here

Solution 4

I had problem with restoring package with error 401 unauthorised. I found the solution by unchecking available local package sources. Debug > Options > NuGet Package Manager > Package Sources

Only allow nuget.org packages

Solution 5

My Visual Studio 2015 Professional was installed using the default settings. The options for "Allow NuGet to download missing packages" and "Automatically check for missing packages during build in Visual Studio" were already checked by default, but I still could not download the packages. I was getting an error that a package version could not be found.

I needed to click a checkbox under Tools > Options > NuGet Package Manager > Package Sources to enable NuGet Package Restore to work as expected.

enter image description here

Share:
51,530
boop
Author by

boop

Updated on July 09, 2022

Comments

  • boop
    boop almost 2 years

    How do I enable the nuget package restore feature in Visual Studio 2015?

    The feature is just missing in my context menu (Yes - I've double checked that I try it on the solution instead of a project)

    My only project is a .NET 4.5 console application - there is no .nuget folder yet. There is an actual nuget package installed.

  • scniro
    scniro almost 9 years
    Dude thank you! I've been crawling everywhere on the web and this was the real fix after hitting many brick walls
  • Steve Johnson
    Steve Johnson over 8 years
    This is the most accurate answer and fixed the same issue for me. I tried everything , searched everywhere but nothing worked. I had to run "update-package -reinstall" command multiple times without having my packages.config to get edited and that was so much pain!
  • Frode Nilsen
    Frode Nilsen over 8 years
    It is easier to edit the project files in an external editor, VS will pick up that the file is changed when you save it.
  • Ismail
    Ismail over 8 years
    I recently had this issue in vs 2015 and looked at my options / packages sources and for some reason nuget was not checked as available package source i clicked on that and it all started working
  • Pankaj Gupta
    Pankaj Gupta about 8 years
    Could you please tell me how package cache button will come under nuget package manager in vs 2015
  • Jim Aho
    Jim Aho about 8 years
    NOTE! Read the answer from BinaryTox below instead!
  • David
    David almost 8 years
    I've had this happen when the packages folder got committed to source control. In my case, the .nupkg files were there -- so NuGet didn't think there was anything to restore -- but the actual DLLs had not been committed (being binary files). For details see my answer here.
  • David
    David almost 8 years
    You also need to make sure you haven't unintentionally committed any of the packages to source/version control. Source control systems will typically ignore the DLLs, but commit the .nupkg files to the source repository. At that point NuGet will think there's nothing to restore, but your builds may fail. See my answer to a related question.
  • David
    David almost 8 years
    And (as I understand it) NuGet will itself flag the packages as needing to be added to source control. You'll probably want to disable that behavior as described in the NuGet docs.
  • jaycer
    jaycer almost 8 years
    The powershell scripts worked for me.
  • Hao
    Hao over 7 years
    This work for me when it reports the error NuGet.targets is missing.
  • sfors says reinstate Monica
    sfors says reinstate Monica almost 6 years
    this didn't fix my problem.
  • sfors says reinstate Monica
    sfors says reinstate Monica almost 6 years
    this didn't fix my problem.