Updating nuget packages in all projects in a solution

30,773

Solution 1

As found in NuGet documentation, you can type:

Update-Package

This will :

Update all packages in all projects of the current solution to the latest versions.

To open the Package Manager Console:

Tools > NuGet Package Manager > Package Manager Console

Now, in order to have only one instance of all packages, I have, in my solution folder, a file named nuget.config that contains:

<configuration>
  <config>
    <add key="repositoryPath" value="..\Path\To\My\Packages" />
  </config>
</configuration>

You might need to reload your solution in order to make it work properly.

Solution 2

You have used command line examples, but your question does not state if you require a command line answer. If you do not require command line, you can right-click on your solution in the Solution Explorer, and select Manage NuGet Packages for Solution ... This displays a dialog where you can make your selections. Other than that, you'd need to write a script at this point in time anyway (as far as I know).

Solution 3

First you have to restore all packages using nuget restore solution_file.sln then update them to latest version by executing nuget update solution_file.sln.

Read more about nuget command line

Updated link to Nuget command line documentation

Nuget Package Manager Console documentation (Visual Studio for Windows)

Edit: Previous link is dead. Added working equivalent and bonus Package Manager Console link.

Share:
30,773
KnightFox
Author by

KnightFox

I am a lead software engineer at a Data Analytics company in Arlington Va

Updated on July 24, 2020

Comments

  • KnightFox
    KnightFox almost 4 years

    I have a .net solution (say A) with multiple projects(say B,C,D). I want to update all nuget packages for all projects in the solution. I know I can update nuget packages using command line but passing in the path to packages.config

    nuget update A/B/packages.config
    

    Is there a way to update packages for all packages.configs inside folder A using command line without having to specify them individually? (I know this can be done from inside visual studio.) Something like

    nuget update A/*/packages.config
    
  • Chris Ward
    Chris Ward over 5 years
    The OP asked for the command line solution and this is not it. The post by Ekk looks to be the correct solution for a command line to update restore and then update to the latest version all packages in a solution.
  • Maxime
    Maxime over 5 years
    The OP rated this answer as the "accepted answer". Also, the OP already knows the command. He simply didn't know what configurations to put in nuget.config.
  • Adrian
    Adrian almost 5 years
    Very helpful to know the version of the library in every project
  • Michael Brown
    Michael Brown about 4 years
    yea except on large solutions this UI takes ages to load, or sometimes not at all.
  • clairestreb
    clairestreb about 3 years
    @Michael, day late and a dollar short, but that's the downfall of having nuget on all of your projects. Many gigs I've worked on only have one external solution that has nuget and stores all of the packages in a separate folder than the main solution. It works great on build machines that are not allowed to connect to the internet, and all projects have a file reference to external packages.