Just recently the .NET Core June 2018 Update dropped and the ASP.NET Workshop I had just set up for CI/CD build was in need of an update to 2.1.1 (Release Notes).

Looking through all of the save-points there are and of course the main /src , the challenge is to know what NuGet packages have changed and what versions are the latest etc., to be updated.

That is where a great .NET global tool, dotnet-outdated comes in to play.

Read more about dotnet global tools in the docs

Install the tool using the .NET CLI - dotnet tool install --global dotnet-outdated , then I can either be at the solution(.sln) level or project(.csproj) level and type dotnet outdated .

The output shows each NuGet package, the current version used and the latest version. You have an option to pass -pr if you'd like to look for Pre-Release versions too.

Another nice option is the -vl or Version Lock option, which allows for locking on Major or Minor when checking for outdated packages.

Updating each of the projects was very fast using the defaults, making the changes to the *.csproj files and then having the CI/CD process do its magic upon commit.

This is another great example of where .NET global tools can make the experience better. Would love to see this tool give an option for auto-updating. It is open source at https://github.com/jerriep/dotnet-outdated.