Skip to content

Instantly share code, notes, and snippets.

@eterekhin
Last active January 17, 2020 06:14
Show Gist options
  • Save eterekhin/1cd8686420c6585d458825a1710d1987 to your computer and use it in GitHub Desktop.
Save eterekhin/1cd8686420c6585d458825a1710d1987 to your computer and use it in GitHub Desktop.

У .net core существует пакет .net core sdk и .net core runtime
Первый нужен для того, чтобы компилировать C# код в IL, также там описана работа GC
Второй это C# реализация базовых классов, например коллекций и массивов
Задача SDK транслировать в IL код, который напишет программист, в том числе и код .net core runtime и выполнять этот код (GC, jit)

Как определить версии .net core sdk и .net core runtime используемые в текущем проекте

Поскольку в .net core работает принцип backward compatibility, то есть любая версия sdk больше указанной в TargetFramework подойдет(ее можно поменять в любой момент), но в таком случае скорость билда и jitting'a методов может измениться Версия .net core runtime выбирается как первая большая указанной в TargetFramework проекта
Например, если указанная версия netcoreapp2.1, то будет использоваться .net runtime version >= 2.1

На сайте предлагается несколько разных версия runtime, это логично, ведь существуют декстопные приложения, веб-приложения и консольные приложения, поэтому созданы ASP.NET Core Runtime, Desktop Runtime и .Net Core runtime, причем последний включен в первые два

Cоответственно можно создать веб-приложение и консольное приложения, это выбирается на уровне cproj файла

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment