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.
dotnet.exe
é instalado com uma instalação em tempo de execução, mas fornece apenas recursos básicos para fornecer informações para executar um aplicativo e fornecer informações sobre a instalação: dotnet mydll.dll
e dotnet --info
. Para construir, publicar ou fazer qualquer outra coisa, você precisa instalar o SDK.
Executar o seguinte comando fornecerá informações sobre a instalação:
dotnet --info
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.
$ 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
A saída diz a você:
- A versão instalada do SDK
- A versão de tempo de execução ativa que está executando este comando dotnet
- Uma lista de todos os runtimes e SDKs instalados
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
brew cask install 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 # .
É importante entender que você pode ter vários tempos de execução e vários SDKs instalados e cada projeto pode usar um diferente. O tempo de execução é determinado pelo especificador de tempo de execução do seu projeto no .csproj
arquivo:
<TargetFramework>netcoreapp2.1</TargetFramework>
O SDK é o último SDK instalado globalmente, que é o padrão, ou você pode substituir explicitamente o SDK em um global.json colocado na pasta raiz da solução. O seguinte força explicitamente meu projeto a usar o último RC SDK, em vez da versão RTM:
{
"sdk": {
"version": "2.1.300-rc.31211"
}
}
Geralmente, não deve haver necessidade de usar uma versão inferior específica do SDK, pois o SDK é compatível com versões anteriores e pode compilar várias versões do aplicativo .NET Core até a v1.0. IOW, não há problema em usar o SDK mais recente em quase todos os casos.
Tempos de execução do .NET Core
Os tempos de execução do .NET Core são o menor componente autocontido e específico e contêm o mínimo absoluto para executar apenas o .NET Core em uma plataforma específica.
Observe que uma instalação em tempo de execução não inclui as dependências de tempo de execução do metapacote ASP.NET Core, portanto, se seu aplicativo fizer referência a Microsoft.AspNetCore.App ou Microsoft.AspNetCore.All, você terá que baixar separadamente o pacote ASP.NET Core. No entanto, se você referenciar explicitamente todos os pacotes ASP.NET Core Nuget em vez de usar os metapacotes, esses pacotes serão implantados como parte do seu aplicativo e poderão ser executados apenas com o tempo de execução.
Essencialmente, você está trocando o tamanho do pacote de instalação por um requisito de pré-instalação em tempo de execução.
Referências: