Use this helper CLI for switching .NET Core SDK versions
A friend of mine, Herman van der Merwe; recently asked me how one can use the .NET Core CLI to switch to a specific version of the .NET Core SDK. After crawling the web, and the official docs for that matter; I realized that the only proper way to do this is to specify the version inside a global.json
file in the same/parent directory. Unfortunately I couldn't find any existing way of doing this via the CLI, so I decided to create one.
According to the official .NET Core CLI docs, you can specify --fx-version
, but this is the version of the runtime framework and not the SDK version.
The .NET Core SDK CLI Helpers
What this helper basically does, it manifests itself onto the existing dotnet
toolchain and exposes some handy commands for quickly switching SDK versions from within the command line. For example:
> dotnet sdk 1.0.4
Switching .NET Core SDK version to 1.0.4
You can also get a list of all the installed SDKs by running:
> dotnet sdk list
The installed .NET Core SDKs are:
1.0.3
1.0.4
1.1.0-preview1-005051
2.0.0-preview1-005977
2.0.0-preview2-006497
If you can't remember the exact version of the latest SDK and want to quickly switch to it, simply pass latest
as the version:
> dotnet sdk latest
.NET Core SDK version switched to latest version.
2.0.0-preview2-006497
The .NET Core CLI is quite extensible, allowing one to add their own custom dotnet
commands. You can read more on the .NET Core CLI tools extensibility model here.
It even comes with a shorter .net
notation which is just an alias for the dotnet
command:
> .net new console
is the same as
> dotnet new console
How do I get it?
It's simple really, it's all just a bunch of CMD scripts:
- Go grab them at my Github repo here and copy them into a folder location of your choice.
- Open up Command Prompt as Administrator and CD into the folder where the scripts are.
- Run
dotnet .net
and you should be good to go.
All this command does, it adds the script folder to the PATH
environmental variable. You might need to close and re-open the Command Line for this to take affect
How does it work?
Like I mentioned before, the only proper way to do this at the moment is to use the 'global.json' file. This helper does exactly that underneath the surface. Wherever dotnet sdk [version]
or .net sdk [version]
is executed, it creates a global.json
file at that location.
That's it!
Regardless if this little helper is actually helpful, I will most certainly use it in my daily workflow with .NET Core.