.NET Core: номера версий и global.json
Уверен, большинство людей, читающих это, знают, что Microsoft недавно анонсировала ASP.NET Core и .NET Core 2.0 Preview 1 на Microsoft Build 2017.
У этой статьи нет цели — дать введение в ASP.NET Core. Вместо этого мы рассмотрим установку .NET Core 2.0 Preview 1 на ваш компьютер таким образом, чтобы это не мешало параллельно работать над другими проектами под ASP.NET Core 1.0/1.1. Т.е. мы установим несколько версий .NET Core на одном компьютере.
Установка .NET Core 2.0 Preview 1 SDK
Очевидно, первое, что нужно сделать — установить .NET Core 2.0 Preview 1 SDK отсюда. Это очень легко: никакого выбора вариантов установки — просто скачиваете и устанавливаете. И там только один номер версии!
Одно небольшое замечание: .NET Core теперь также включает ASP.NET Core. Это значит, что вам нужно устанавливать меньше внешних пакетов, когда вы разворачиваете свое приложение, что не может не радовать!
Стоит также отметить, что, если вы хотите создавать приложения ASP.NET Core 2.0 в Visual Studio, вам нужно будет установить предварительную версию Visual Studio 2017. Её можно устанавливать параллельно со стабильной версией.
Версии .NET Core
Выше я написал, что новый .NET Core имеет только один номер версии 2.0 preview 1, но это не совсем так. Есть два разных аспекта установки .NET Core: номер версии SDK/CLI (command line interface) и номер версии runtime (среды исполнения или .NET Core Shared Framework Host).
Если вы только-что установили 2.0 preview 1, то, если наберете в консоли dotnet —info, увидите примерно следующее:
Там целая куча разной информации, среди которой есть два разных номера версий:
- 2.0.0-preview1-005977 — версия SDK
- 2.0.0-preview1-002111-00 — версия среды исполнения
Но эти номера версий немного вводят в заблуждение. У меня на компьютере установлены также .NET Core SDK версии 1.0 и .NET Core Runtime версии 1.1.1 и 1.0.4, но здесь нет никакой информации о инх.
Понимание версий .NET Core runtime
Одно из преимуществ .NET Core заключается в возможности установи параллельно нескольких версий среды исполнения параллельно, без влияния их друг на друга. Это отличается от того, как происходит установка .NET Framework. Вы не можете установить параллельно .NET Framework 4.5, 4.6 и 4.7 — версия 4.7 заменит предыдущие версии.
Вы можете увидеть, какие версии среды исполнения .NET Core уже установлены, если зайдете в папку C:\Program Files\dotnet\shared\Microsoft.NETCore.App (на маках нужно смотреть в папку /usr/local/share/dotnet/shared/Microsoft.NETCore.App ). Как видите, на моем компьютере установлено три версии:
Следующий вопрос — как узнать, какая версия среды исполнения будет использоваться, когда вы запускаете свое приложение?
Всё очень просто: вам нужно указать нужную версию в .csproj файле!
Например, в проекте .NET Core 1.1 вы можете установить параметр <TargetFramework> (или <TargetFrameworks> , если вы собираете проект под несколько разных версий) в значение netcoreapp1.1 :
В этом случае приложение будет использовать .NET Core версии 1.1.1 (см. выше список установленных версий). Если вы установите <TargetFramework> в значение netcoreapp1.0 , то будет использоваться версия 1.0.4.
Файл .csproj: для ASP.NET приложения, использующего runtime версии 2.0 preview 1 будет выглядеть примерно так:
В файле .csproj указано для <TargetFramework> значение netcoreapp2.0 и будет использована максимальная соответствующая ему версия (на моем компьютере — это 2.0.0-preview1-002111-00 ).
Понимание версий SDK
Надеюсь, теперь вы всё понимаете про версии среды исполнения .NET Core. Но у нас всё еще остается открытым вопрос про версии SDK/CLI.
Если вы перейдете в папку C:\Program Files\dotnet\sdk (на маках нужно смотреть в папку /usr/local/share/dotnet/sdk ), вы увидите, какие версии SDK установлены на вашем компьютере. Как видите, у меня установлено две версии: 1.0.0 и 2.0.0-preview1-005977 .
Грубо говоря, SDK — это штука, которая предоставляет команды, связанные со сборкой: dotnet new , dotnet build , dotnet publish и т.п.
В общем случае, любая версия SDK, которая больше версии, использованной при создании проекта, может быть использована для его сборки ( dotnet build и dotnet publish ). Таким образом, вы можете просто использовать SDK версии 2.0 для работы с проектами, созданными в SDK версии 1.0.
Это значит, что в большинстве случаев вы можете использовать для всех проектов последнюю версию SDK. Другая версия SDK может понадобиться, например, если вы хотите собрать проект, использующий файл project.json (в этом случае вам будет нужен RC2 SDK).
Текущая версия SDK также влияет на новые проекты, создаваемые командой dotnet new . Если вы используете SDK версии 2.0 Preview 1, вы получите приложение на основе netcoreapp2.0 , если вы используете SDK версии 1.0, вы получите приложение на основе netcoreapp1.1 !
Следующий вопрос — как указать приложению, какую версию SDK нужно использовать.
Выбор версии SDK в файле global.json
Файл global.json имеет очень простой формат, который просто задает, какую версию SDK нужно использовать:
Когда вы запускаете dotnet new или dotnet build , dotnet ищет global.json , сначала в текущей папке, потом во всех родительских папках. Если global.json найден (и доступна версия SDK, указанная там!), то эта версия будет использована для всех запускаемых команд SDK внутри этой папки. Если не получилось найти ни один файл global.json , будет использована последняя доступная версия SDK, в моем случае, 2.0.0-preview1-005977 .
Лично я поместил вышеуказанный global.json в свою папку Projects и поэтому все существующие проекты, которые в ней находятся, будут продолжать использовать SDK 1.0.0 (а также все новые проекты, которые я там создаю). Затем я создал подпапку netcore20 и добавил следующий global.json . В ней я размещаю все проекты, в которых хочу «поиграть» с предварительной версией ASP.NET Core 2.0, не рискуя получить проблемы из-за этого!
Заключение
Версионирование было одной из проблем .NET Core до недавнего времени. Выравнивание всех версий в будущем, безусловно, упростит ситуацию и, как мы надеемся, это будет вызывать меньше путаницы. Но по-прежнему стоит попытаться понять разницу между версиями среды выполнения и версиями SDK. Я надеюсь, что этот пост помог прояснить некоторые из этих вопросов!
Name already in use
docs / docs / core / sdk.md
- Go to file T
- Go to line L
- Copy path
- Copy permalink
- Open with Desktop
- View raw
- Copy raw contents Copy raw contents
Copy raw contents
Copy raw contents
What is the .NET SDK?
The .NET SDK is a set of libraries and tools that allow developers to create .NET applications and libraries. It contains the following components that are used to build and run applications:
- The .NET CLI.
- The .NET runtime and libraries.
- The dotnet driver.
How to install the .NET SDK
As with any tooling, the first thing is to get the tools on your machine. Depending on your scenario, you can install the SDK using one of the following methods:
- Use the native installers.
- Use the installation shell script.
The native installers are primarily meant for developers’ machines. The SDK is distributed using each supported platform’s native install mechanism, such as DEB packages on Ubuntu or MSI bundles on Windows. These installers install and set up the environment as needed for the user to use the SDK immediately after the install. However, they also require administrative privileges on the machine. You can find the SDK to install on the .NET downloads page.
Install scripts, on the other hand, don’t require administrative privileges. However, they also don’t install any prerequisites on the machine; you need to install all of the prerequisites manually. The scripts are meant mostly for setting up build servers or when you wish to install the tools without admin privileges (do note the prerequisites caveat above). You can find more information in the install script reference article. If you’re interested in how to set up the SDK on your CI build server, see Use the .NET SDK in Continuous Integration (CI) environments.
By default, the SDK installs in a «side-by-side» (SxS) manner, which means multiple versions can coexist at any given time on a single machine. For information about how the version gets picked when you’re running CLI commands, see Select the .NET version to use.
How to download and install .Net Core
In this tutorial, we will learn how to download and install .Net Core or Dot Net Core. The downloads consist of three parts. The SDK, runtime & Hosting bundle. Learn the difference between the SDK, Runtime & Hosting bundle. We have also listed dependencies that you must install before. Also the list of supported OS. ASP.NET Core is not a separate download. It is installed as part of the .NET core.
Table of Contents
Download .NET Core

As of the writing of this article .NET Core 3.1 is the latest stable version. Choose the recommended version from the list. Also, make sure to check whether your OS supports the version by scrolling down to the Supported OS Section

The section contains 3 downloads underlined in red.
Difference Between SDK Vs Runtime Vs Hosting Bundle
The SDK stands for Software Development Kit contains the everything you need to build and run .NET Core Applications. You can build app either using command-line tools or using any editor like Visual Studio/Visual Studio Code.
SDK also includes the runtime
Runtime
The Run time includes everything you need to run a .NET core Applications.
The SDK is to build the App. The Runtime is to run the App.
Runtime & Hosting Bundle
The Hosting bundle is required if you wish the ASP.NET Core web application on the IIS Server. It also contains the .NET Core run time.
.NET Core Dependencies
The .NET Core has a dependency on the following Packages.
Microsoft Visual C++ 2015 Redistributable Update 3
This is automatically installed by the Installer. but if you are installing by a script or deploying the .NET core self-contained app. Installing via a Source, then you need to install this
Supported OS
Windows
| OS | .NET Core |
| Windows 7SP1+ | All |
| Windows 8.1 | All |
| Windows 10 Version 1609+ | All |
| Nano Server Version 1803+ | >=.NET Core 2.2 |
macOS
| OS | .NET Core |
| Mac OS X 10.15 | .NET Core 3.1 .NET Core 2.1 |
| Mac OS X 10.14 | .NET Core 3.1 .NET Core 2.1 |
| Mac OS X 10.13 | .NET Core 3.1 .NET Core 2.1 |
| Mac OS X 10.12 | NET Core 1.0 .NET Core 2.2 |
Ubuntu
| OS | Architecture | .NET Core |
| Ubuntu 16.04+,18.04, 20.04 | x64, ARM32, ARM64 | .NET Core 3.0 |
| Ubuntu 18.10, 18.04, 16.04 | x64, ARM32 | .NET Core 2.2 |
| Ubuntu 19.04, 18.04, 16.04 | x64, ARM32 | .NET Core 2.1 |
| Ubuntu 16.04, 18.04 (1.1) | x64 | .NET Core 1.0 |
Debian
| OS | Architecture | .NET Core |
| Debian 10+ | x64, ARM32, ARM64 | .NET Core 3.1 .NET Core 2.1 |
| Debian 9+ | x64, ARM32, ARM64 | .NET Core 3.1 .NET Core 2.1 |
| Debian 8.2+ | x64 | .NET Core 1.0 |
Install .NET Core
Installing .Net Core is quite straight forward. Double click on the Downloaded Installer

Click on Install to begin the installation.

It will take some time. In the end, you will see the installation successful window. It will give you the details of the component installed.

How to find out which .Net Core version is installed on your PC
Open the folder C:\Program Files\dotnet\sdk or C:\Program Files (x86)\dotnet\sdk . You should be able to see all the Dot net Core versions installed in your PC

You can check the version of the Dot net core runtime from the folder C:\Program Files\dotnet\shared\Microsoft.NETCore.App

Path to dotnet.exe using where

dotnet —info will give you more information is about the .Net core installation as shown below
Using .NET in Visual Studio Code
.NET provides a fast and modular platform for creating many different types of applications that run on Windows, Linux, and macOS. Use Visual Studio Code with the C# and F# extensions to get a powerful editing experience with C# IntelliSense, F# IntelliSense (smart code completion), and debugging.
Setting up VS Code for .NET development
.NET Coding Pack
To help you set up quickly, you can install the .NET Coding Pack, which includes VS Code, the .NET Software Development Kit, and essential .NET extensions. The Coding Pack can be used as a clean installation, or to update or repair an existing development environment.
Note: The .NET Coding Pack is only available for Windows and macOS. For other operating systems, you will need to manually install the .NET SDK, VS Code, and .NET extensions.
Installing extensions
If you are an existing VS Code user, you can also add .NET support by installing the .NET Extension Pack, which includes these extensions:
You can also install extensions separately.
Installing the .NET Software Development Kit
If you download the extensions separately, ensure that you also have the .NET SDK on your local environment. The .NET SDK is a software development environment used for developing .NET applications.