De acordo com o Guia do .Net Core , o .NET Core é composto dos seguintes itens
- Um runtime .NET, que fornece um sistema de tipos, carregamento de montagem, um coletor de lixo, interoperabilidade nativa e outros serviços básicos.
- Um conjunto de bibliotecas de framework, que fornecem tipos de dados primitivos, tipos de composição de aplicativos e utilitários fundamentais.
- Um conjunto de ferramentas SDK e compiladores de linguagem que permitem a experiência básica do desenvolvedor, disponível no .NET Core SDK.
- O host de aplicativo 'dotnet', que é usado para iniciar aplicativos .NET Core. Ele seleciona o tempo de execução e hospeda o tempo de execução, fornece uma política de carregamento de montagem e inicia o aplicativo. O mesmo host também é usado para iniciar ferramentas SDK da mesma maneira.
O SDK é tudo o que é necessário / torna o desenvolvimento de um aplicativo .NET Core mais fácil, como a CLI e um compilador.
O tempo de execução é a "máquina virtual" que hospeda / executa o aplicativo e abstrai toda a interação com o sistema operacional de base.
Apenas o último é necessário para executar o aplicativo, mas o primeiro é necessário para desenvolver o aplicativo.
dotnet myapp.dll
se o cli é necessário para executar um aplicativo, como ele pode não fazer parte do tempo de execução?Tempo de execução : para executar aplicativos
SDK (Runtime + Tooling) : para construir e executar aplicativos
fonte
Não estou inventando nada aqui. Basta copiar e colar as definições de https://www.microsoft.com/net/download
O kit de desenvolvimento de software ( SDK ) inclui tudo que você precisa para construir e executar aplicativos .NET Core, usando ferramentas de linha de comando e qualquer editor (incluindo Visual Studio).
O tempo de execução inclui apenas os recursos necessários para executar os aplicativos .NET Core existentes. O tempo de execução está incluído no SDK.
fonte
Compartilhamento da postagem de Rick Strahl: Qual download do .NET Core Runtime você precisa?
Apenas o .NET Core Runtime é necessário para executar um aplicativo e fornece informações sobre a instalação.
Para desenvolver, construir e publicar um aplicativo, é necessário um SDK.
Se o comando falhar, significa que você não tem o tempo de execução do .NET Core instalado ou disponível no PATH do sistema.
Abaixo está um exemplo de saída do comando.
A instalação de um SDK também instala o tempo de execução.
MacOS homebrew específico
A instalação do dotnet homebrew-cask entrará em conflito com o dotnet-sdk , para obter o tempo de execução e o sdk instale o dotnet-sdk
Resumindo, o tempo de execução permitirá que seu sistema operacional execute programas C-Sharp , C # compilados , e o sdk permitirá que você compile programas escritos em C-Sharp , C # .
<TargetFramework>netcoreapp2.1</TargetFramework>
Referências:
fonte
Microsoft.AspNetCore.App
listado em tempos de execução? Achei que CLR seria um runtime?shared/Microsoft.NETCore.App/<runtime version>
são os tempos de execução. Oshared/Microsoft.AspNetCore.{App,All}/<aspnetcore version>
contém as bibliotecas ASP.NET Core. docs.microsoft.com/en-us/dotnet/core/build/…O SDK é tudo o que é necessário / torna o desenvolvimento de um aplicativo .NET Core mais fácil, como a CLI e um compilador.
O tempo de execução é a "máquina virtual" que hospeda / executa o aplicativo e abstrai toda a interação com o sistema operacional de base.
fonte
Como resumo: Se você instalar o SDK, terá tudo o que precisa para desenvolver e executar o aplicativo.
fonte
O SDK geralmente inclui documentação e outros arquivos de ajuda. O tempo de execução contém apenas os arquivos binários para a instalação.
fonte
adicionando à resposta de stormwild no caso de você ter apenas o .Net Core Runtime instalado, você receberá a seguinte saída de dotnet --info
fonte
O tempo de execução é suficiente se quisermos executar apenas o aplicativo no hardware, caso contrário, para desenvolver e executar precisamos do SDK (que inclui o tempo de execução e ferramentas).
fonte
Em termos simples, de acordo com meu entendimento e a referência do artigo https://karthikekblog.com/net-core-sdk-vs-runtime-vs-hosting-bundle/
.NET SDK - inclui tudo o que você precisa, desde a criação de aplicativos .Net Core até a construção, execução e publicação dos aplicativos. Isso requer puramente pelo ambiente de desenvolvimento, para que os desenvolvedores possam desenvolver o aplicativo do zero e construir, depurar e executar o aplicativo.
Tempo de execução - contém apenas os componentes necessários para executar os aplicativos .NET Core. Portanto, isso pode ser instalado no lado do servidor onde você implanta o aplicativo e não requer compilações e depurações. Ele exigia componentes de hospedagem IIS separadamente. Em vez disso, você pode usar o Hosting Bundle para Windows.
fonte
Quando você instala o SDK, também obtém tempo de execução. Verifique isso abaixo, é isso que é instalado quando instalamos o SDK.
Os seguintes itens foram instalados em C: \ Arquivos de programas \ dotnet • .NET Core SDK 2.2.100 • .NET Core Runtime 2.2.0 • ASP.NET Core Runtime 2.2.0
fonte