Я прочитал много статей, включая этого, все же я не могу все еще выяснить то, что является различием, и они не объяснили это или простыми словами или вообще.
Кто-то может разъяснить то, что различие между.NET Временем выполнения.NET и SDK?
Обновление: Используя сравнения очень ценился бы. Аналогия вместе с простым английским языком является очень образовательной.
Совместное использование из сообщения Rick Strahl: , В какой Загрузке Времени выполнения.NET Core Вы нуждаетесь?
Только Время выполнения.NET Core требуется запустить приложение и предоставляет информацию об установке.
Для разработки создайте и опубликуйте приложение, потребует SDK.
dotnet.exe
установки с установкой во время выполнения, но это только обеспечивает , базовые функции для обеспечения информации [1 144] работают приложение и обеспечивают информацию об установке:dotnet mydll.dll
иdotnet --info
. Для создания опубликуйте или сделайте что-либо еще, что необходимо установить SDK.Выполнение следующей команды предоставит информацию об установке:
dotnet --info
, Если команда перестала работать, это означает, что Вам не установили время выполнения.NET Core или доступный в ПУТИ системы.
Ниже демонстрационный вывод команды.
$ dotnet --info
.NET Core SDK (reflecting any global.json):
Version: 2.2.101
Commit: 236713b0b7
Runtime Environment:
OS Name: Mac OS X
OS Version: 10.13
OS Platform: Darwin
RID: osx.10.13-x64
Base Path: /usr/local/share/dotnet/sdk/2.2.101/
Host (useful for support):
Version: 2.2.0
Commit: 1249f08fed
.NET Core SDKs installed:
2.1.4 [/usr/local/share/dotnet/sdk]
2.1.302 [/usr/local/share/dotnet/sdk]
2.2.101 [/usr/local/share/dotnet/sdk]
.NET Core runtimes installed:
Microsoft.AspNetCore.All 2.1.2 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.All]
Microsoft.AspNetCore.All 2.2.0 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.1.2 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 2.2.0 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 2.0.5 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 2.1.2 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 2.2.0 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
To install additional .NET Core runtimes or SDKs:
https://aka.ms/dotnet-download
вывод говорит Вам:
- установленная версия
- SDK активная версия среды выполнения это выполняет эту dotnet команду
- , список всего установленного времени выполнения и SDKs
, Устанавливающего SDK также, устанавливает время выполнения.
<час>Установка доморощенной бочки , dotnet будет конфликтовать с dotnet-sdk, так для получения и времени выполнения, и установка sdk dotnet-sdk
brew cask install dotnet-sdk
Короче говоря, , время выполнения позволит ОС работать скомпилированный До-диез , C# программы, и , sdk позволит Вам компилировать программы, записанные в [1 117] До-диез , C#.
<час>важно понять, что у Вас может быть несколько времени выполнения и несколько установленные SDKs, и каждый проект может использовать различный. Время выполнения определяется спецификатором Вашего проекта во время выполнения в
.csproj
файл:
<TargetFramework>netcoreapp2.1</TargetFramework>
SDK является или последний глобально установленный SDK, который является значением по умолчанию, или можно явно переопределить SDK в global.json, помещенном в корневую папку решения. Следующее явно вызывает мой проект использовать последний RC SDK вместо версии RTM:
{ "sdk": { "version": "2.1.300-rc.31211" } }
Обычно не должно быть никакой потребности использовать определенную более низкую версию SDK, поскольку SDK назад совместим и может скомпилировать различные версии.NET Core applicatino назад к v1.0. IOW, нормально использовать последний SDK почти во всех случаях.
Время выполнения.NET Core
Время выполнения.NET Core является самым маленьким автономным и определенным компонентом и содержит абсолютный минимум для выполнения просто.NET Core на определенной платформе.
Примечание это установка во время выполнения не включает Ядро ASP.NET meta зависимости от времени выполнения пакета, поэтому если Ваши ссылки приложения Microsoft. AspNetCore. Приложение или Microsoft. AspNetCore. Все необходимо отдельно загрузить пакет Ядра ASP.NET. Однако, если Вы явно ссылочный все Ядро ASP.NET, пакеты Nuget вместо того, чтобы использовать meta пакеты, те пакеты развертываются как часть Вашего приложения и это может работать только с временем выполнения.
По существу Вы торгуете, размер пакета установки по сравнению со временем выполнения предварительно устанавливают требование.
Ссылки:
Как сводка: при установке SDK у Вас будет все, в чем Вы нуждаетесь для разработки и запущения приложения.
добавление к ответу stormwild в случае, если у Вас есть только.Net Core Runtime, установило Вас, получит следующий вывод от dotnet - информация
>PS C:\Users\Administrator> dotnet --info
>
>Host (useful for support):
> Version: 2.2.3
> Commit: 6b8ad509b6
>
>.NET Core SDKs installed:
> No SDKs were found.
>
>.NET Core runtimes installed:
> Microsoft.NETCore.App 2.2.3 [C:\Program
>Files\dotnet\shared\Microsoft.NETCore.App]