Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to enable nugets package restore in Visual Studio 2015?

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.

like image 743
boop Avatar asked Jan 24 '15 22:01

boop


People also ask

How do I run a NuGet package restorer?

It is available in the main menu (Tools | NuGet | NuGet Force Restore) or in the NuGet quick list Alt+Shift+N .

How do I open the package manager console in Visual Studio 2015?

Open the project/solution in Visual Studio, and open the console using the Tools > NuGet Package Manager > Package Manager Console command.


2 Answers

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.

like image 138
Martin Shishkov Avatar answered Sep 23 '22 02:09

Martin Shishkov


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.

like image 43
BinaryTox1n Avatar answered Sep 20 '22 02:09

BinaryTox1n