A friend of mine 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
dotnetcommands. 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
> .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.
dotnet .netand you should be good to go.
All this command does, it adds the script folder to the
PATHenvironmental 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.
Regardless if this little helper is actually helpful, I will most certainly use it in my daily workflow with .NET Core.