There is some pretty nifty stuff making it’s way into .NET Core 2.2 such as a new route “dispatcher” and inbuilt support for healthchecks. But you’re going to need to set up your workstation (And your project) to handle .NET Core 2.2 first! In previous articles where we’ve updated from 2.0 to 2.1, it’s been a right headache, but slowly Microsoft are getting better at handling this whole version bump thing.
If You Want Preview – Use The Command Line
Just to kick us off, I need to point out that in almost all cases, if you are intending to use the preview SDK’s for .NET Core. You are going to need to be creating, building, and publishing projects from the command line. There is support for Visual Studio for preview SDK’s in some cases, but even opening a preview project in the wrong version of Visual Studio can completely break the project by dumping junk in the bin folder etc.
So again, try and do all of the following without Visual Studio atleast so you know it works. Then you can deal with the headache of Visual Studio!
Installing The .NET Core 2.2 SDK
So remember that there is really two parts to .NET Core. There is the SDK which is how your project is built, and the runtime which is what your application actually runs on.
Let’s first sort out the SDK part of this equation.
We want to go to specifically the .NET Core 2.2 download page and download the latest SDK (Not runtime) for our operating system. Note that this isn’t the general .NET Core download page, the current LTS version of .NET Core is currently 2.1. So that’s the version that gets thrust upon you. You specifically need to skip that, go direct to the 2.2 download page, and install the latest SDK.
After installing, open a command prompt and run the following :
.NET Core SDK (reflecting any global.json):
This tells us what it thinks the latest (Or to be more correct, the default) version of the .NET Core SDK we are running.
In this example, I’m currently running version 2.2.100-preview3, which is the latest at the time of writing. Anything 2.2.*** should be fine. It’s also interesting to note that this is a big departure from .NET Core 2.1, where you could have version 2.1.*** of the SDK, and it actually couldn’t build 2.1 projects… So it’s nice Microsoft have tidied that up.
Now if you create a new project using the command line, by default it’s going to be using 2.2 as it’s SDK, but if you want to modify an existing project to use the latest build tools (And remember, the SDK is different to the runtime as we will see later), then you need to modify your global.json.
In the root of your project, you should either already have a global.json or create a new one. The contents of which should look like :
Where the version should match your SDK you just installed.
Without a global.json, you will actually use the default anyway. But it’s good to try and be explicit with what version of the SDK you know everything builds fine with. This is especially true if later you install a new version of the SDK with breaking changes, and all your old projects “automatically” update and break.
Updating A Project Runtime To .NET Core 2.2
Changing the project runtime is actually super easy. Just open up your csproj and bump up your TargetFramework.
Go ahead and build your project using dotnet build from the command line, and all going well you should be good to go.
If you see an error such as :
The current .NET SDK does not support targeting .NET Core 2.2.
Then you currently aren’t running on the latest SDK. Either you have not installed the latest SDK or your global.json in the project/solution folder is pointing to an older version.
Visual Studio Support
.NET Core 2.2 does have support inside Visual Studio but only from version 15.9 Preview 3 onwards. At the time of writing, this means you need to download the pre-release version of Visual Studio here to get access to that specific version.
The installation itself is some 5GB, so unless you really need the full development experience for preview SDK’s, you should probably try and go without!
If you are able to upgrade non pre-release version of Visual Studio to atleast 15.9, then you should be able to open .NET Core 2.2 projects.