Según la Guía de .Net Core , .NET Core se compone de los siguientes elementos
- Un tiempo de ejecución .NET, que proporciona un sistema de tipos, carga de ensamblado, un recolector de basura, interoperabilidad nativa y otros servicios básicos.
- Un conjunto de bibliotecas de marco, que proporcionan tipos de datos primitivos, tipos de composición de aplicaciones y utilidades fundamentales.
- Un conjunto de compiladores de lenguaje y herramientas del SDK que habilitan la experiencia básica del desarrollador, disponible en .NET Core SDK.
- El host de la aplicación 'dotnet', que se usa para iniciar aplicaciones .NET Core. Selecciona el tiempo de ejecución y aloja el tiempo de ejecución, proporciona una política de carga de ensamblados e inicia la aplicación. El mismo host también se usa para lanzar herramientas SDK de la misma manera.
El SDK es todo lo que se necesita / facilita el desarrollo de una aplicación .NET Core, como la CLI y un compilador.
El tiempo de ejecución es la "máquina virtual" que aloja / ejecuta la aplicación y abstrae toda la interacción con el sistema operativo base.
Solo se requiere el último para ejecutar la aplicación, pero el primero es necesario para desarrollar la aplicación.
dotnet myapp.dll
si se requiere la CLI para ejecutar una aplicación, ¿cómo diablos no puede ser parte del tiempo de ejecución?Tiempo de ejecución : para ejecutar aplicaciones
SDK (Runtime + Tooling) : para crear y ejecutar aplicaciones
fuente
No estoy inventando nada aquí. Simplemente copie y pegue las definiciones de https://www.microsoft.com/net/download
El kit de desarrollo de software ( SDK ) incluye todo lo que necesita para crear y ejecutar aplicaciones .NET Core, utilizando herramientas de línea de comandos y cualquier editor (incluido Visual Studio).
El tiempo de ejecución incluye solo los recursos necesarios para ejecutar aplicaciones .NET Core existentes. El tiempo de ejecución está incluido en el SDK.
fuente
Compartiendo de la publicación de Rick Strahl: ¿Qué descarga en tiempo de ejecución de .NET Core necesita?
Solo se requiere .NET Core Runtime para ejecutar una aplicación y proporciona información sobre la instalación.
Para desarrollar, crear y publicar una aplicación se requiere un SDK.
Si el comando falla, significa que no tiene el tiempo de ejecución de .NET Core instalado o disponible en la RUTA del sistema.
A continuación se muestra una salida de muestra del comando.
La instalación de un SDK también instala el tiempo de ejecución.
específico de homebrew de macOS
La instalación de homebrew-cask dotnet entrará en conflicto con dotnet-sdk , por lo que para obtener tanto el tiempo de ejecución como el sdk, instale dotnet-sdk
En resumen, el tiempo de ejecución permitirá que su sistema operativo ejecute programas compilados en C-Sharp , C # , y el sdk le permitirá compilar programas escritos en C-Sharp , C # .
<TargetFramework>netcoreapp2.1</TargetFramework>
Referencias:
fuente
Microsoft.AspNetCore.App
aparece en tiempos de ejecución? Pensé que CLR sería un tiempo de ejecución.shared/Microsoft.NETCore.App/<runtime version>
son los tiempos de ejecución. Elshared/Microsoft.AspNetCore.{App,All}/<aspnetcore version>
contiene las bibliotecas ASP.NET Core. docs.microsoft.com/en-us/dotnet/core/build/…El SDK es todo lo que se necesita / facilita el desarrollo de una aplicación .NET Core, como la CLI y un compilador.
El tiempo de ejecución es la "máquina virtual" que aloja / ejecuta la aplicación y abstrae toda la interacción con el sistema operativo base.
fuente
Como resumen: si instala SDK, tendrá todo lo que necesita para desarrollar y ejecutar la aplicación.
fuente
El SDK generalmente incluye documentación y otros archivos de ayuda. El tiempo de ejecución contiene solo los archivos binarios para la instalación.
fuente
agregando a la respuesta de stormwild en caso de que solo tenga instalado .Net Core Runtime, recibirá el siguiente resultado de dotnet --info
fuente
El tiempo de ejecución es suficiente si queremos ejecutar solo la aplicación en el hardware; de lo contrario, para desarrollar y ejecutar necesitamos SDK (que incluye tiempo de ejecución y herramientas).
fuente
En términos simples, según mi entendimiento y la referencia del artículo https://karthikekblog.com/net-core-sdk-vs-runtime-vs-hosting-bundle/
.NET SDK: incluye todo lo que necesita, desde la creación de la aplicación .Net Core hasta la creación, ejecución y publicación de las aplicaciones. Esto lo requiere únicamente el entorno de desarrollo, por lo que los desarrolladores pueden desarrollar la aplicación desde cero y compilar, depurar y ejecutar la aplicación.
Tiempo de ejecución: solo tiene los componentes necesarios para ejecutar las aplicaciones .NET Core. Así que esto se puede instalar en el lado del servidor donde implementa la aplicación y no requiere compilaciones ni depuraciones. Requería componentes de hospedaje IIS por separado. En su lugar, puede utilizar Hosting Bundle para Windows.
fuente
Cuando instalas SDK, también obtienes tiempo de ejecución en eso. Verifique esto a continuación, esto es lo que se instala cuando instalamos SDK.
Lo siguiente se instaló en C: \ Archivos de programa \ dotnet • .NET Core SDK 2.2.100 • .NET Core Runtime 2.2.0 • ASP.NET Core Runtime 2.2.0
fuente