NuGet Package Restore Not Working

I checked in a project on one computer, checked out on another, and find that the binaries installed by NuGet are missing. I could check them in to source control as well, but it looks like there's a better solution:

http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages

I followed those instructions, now have a .nuget folder where one should be, have the following entries in my .csproj file:

<RestorePackages>true</RestorePackages>
<Import Project="$(SolutionDir)\.nuget\nuget.targets" />

and yet when I rebuild my solution, the missing packages are not restored.

What am I missing? How can I diagnose this problem?


Solution 1:

Note you can force package restore to execute by running the following commands in the nuget package manager console

Update-Package -Reinstall

Forces re-installation of everything in the solution.


Update-Package -Reinstall -ProjectName myProj

Forces re-installation of everything in the myProj project.

Note: This is the nuclear option. When using this command you may not get the same versions of the packages you have installed and that could be lead to issues. This is less likely to occur at a project level as opposed to the solution level.

You can use the -safe commandline parameter option to constrain upgrades to newer versions with the same Major and Minor version component. This option was added later and resolves some of the issues mentioned in the comments.

Update-Package -Reinstall -Safe

Solution 2:

For others who stumble onto this post, read this.

NuGet 2.7+ introduced us to Automatic Package Restore. This is considered to be a much better approach for most applications as it does not tamper with the MSBuild process. Less headaches.

Some links to get you started:

  • The right way to restore NuGet packages
  • Migrate away from MSBuild-based NuGet package restore
  • Migrating MSBuild-Integrated solutions to use Automatic Package Restore

Solution 3:

You have to choose one way of the following :

Re-installing a package by it's name in all solution's projects:

Update-Package –reinstall <packageName>

Re-installing a package by it's name and ignoring it's dependencies in all solution's projects:

Update-Package –reinstall <packageName> -ignoreDependencies

Re-installing a package by it's name in a project:

Update-Package –reinstall <packageName> <projectName>

Re-installing all packages in a specific project:

Update-Package -reinstall -ProjectName <projectName>

Re-installing all packages in a solution:

Update-Package -reinstall