Switch between dotnet core SDK versions
C#asp.net Core.Net CoreC# Problem Overview
I recently installed VS 2017 RC and then automatically my dotnet version pointed to 1.0.0-preview4-004233
. Due to that whenever I create a new project using command dotnet new -t Console
I cannot see project.json
though I see .csproj
file.
When I check dotnet versions available on my machine at - C:\Program Files\dotnet\sdk
I see multiple versions available.
Is there any way to switch dotnet core back to an earlier version - 1.0.0-preview2-003133
from 1.0.0-preview4-004233
without uninstalling.
C# Solutions
Solution 1 - C#
You can do this with a global.json
file in the root of your project:
- Verify the list of SDKs on your machine:
dotnet --list-sdks
You'll see a list like this.
2.1.100 [C:\Program Files\dotnet\sdk]
2.1.101 [C:\Program Files\dotnet\sdk]
2.1.103 [C:\Program Files\dotnet\sdk]
2.1.104 [C:\Program Files\dotnet\sdk]
[...lines omitted...]
2.1.601 [C:\Program Files\dotnet\sdk]
2.2.101 [C:\Program Files\dotnet\sdk]
3.0.100-preview3-010431 [C:\Program Files\dotnet\sdk]
- Create a folder to be the root of your project, where you are going to run
dotnet new
. - In that folder, run this command:
dotnet new globaljson
The result will look something like this:
{
"sdk": {
"version": "3.0.100-preview3-010431"
}
}
- In
version
, replace the3.0.100-preview3-010431
with the version you prefer from the--list-sdks
list. For example:
{
"sdk": {
"version": "2.2.101"
}
}
- Run
dotnet --version
to verify. You should see:
2.2.101
- Run the appropriate
dotnet new
commands to create your project.
Solution 2 - C#
Dotnet usually uses the latest SDK version, unless it finds a global.json file that tells it to do otherwise. The explanation by microsoft
dotnet looks for the file in the working directory (not necessarily the project or solution directory), and if it can't find one it starts searching upwards from there. documentation
An easy way to create a global.json file would be to run dotnet new globaljson --sdk-version 1.0.0-preview2-003133
in the directory of your project.
create a global.json from the cli
Solution 3 - C#
When we install each dotnet core SDK on OS, the each project can use SDKs version separately. Because the SDK have global installation. We can configuration each project settings by create global.json
via this command:
dotnet new globaljson
and finally selected the correct version.
The process for selecting an SDK version is:
dotnet
searches for aglobal.json
file iteratively reverse-navigating the path upward from the current working directory.dotnet
uses the SDK specified in the firstglobal.json
found.dotnet
uses the latest installed SDK if noglobal.json
is found.
Step-by-Step: https://stackoverflow.com/a/42078060/14557383
Solution 4 - C#
If you want to create a new project using a specific version you can go to this directory 'C:\Program Files\dotnet\sdk' then add an underscore to newer version (all of them) of dotnet that you don't want (only the newer ones is enough) then create your project.
Solution 5 - C#
You can check in global.json
Run the command dotnet --list-sdks
You will see the results
2.2.110 [C:\Program Files\dotnet\sdk] 5.0.103 [C:\Program Files\dotnet\sdk]