Gemäß dem .Net Core-Handbuch besteht .NET Core aus den folgenden Elementen
- Eine .NET-Laufzeit, die ein Typsystem, das Laden von Assemblys, einen Garbage Collector, native Interop- und andere Basisdienste bereitstellt.
- Eine Reihe von Framework-Bibliotheken, die primitive Datentypen, App-Kompositionstypen und grundlegende Dienstprogramme bereitstellen.
- Eine Reihe von SDK-Tools und Sprachcompilern, die die Basisentwicklererfahrung ermöglichen und im .NET Core SDK verfügbar sind.
- Der 'Dotnet'-App-Host, mit dem .NET Core-Apps gestartet werden. Es wählt die Laufzeit aus und hostet die Laufzeit, stellt eine Richtlinie zum Laden von Assemblys bereit und startet die App. Der gleiche Host wird auch verwendet, um SDK-Tools auf die gleiche Weise zu starten.
Das SDK ist alles, was benötigt wird / erleichtert die Entwicklung einer .NET Core-Anwendung, wie z. B. der CLI und eines Compilers.
Die Laufzeit ist die "virtuelle Maschine", die die Anwendung hostet / ausführt und die gesamte Interaktion mit dem Basisbetriebssystem abstrahiert.
Nur Letzteres ist erforderlich, um die Anwendung auszuführen, Ersteres ist jedoch erforderlich, um die Anwendung zu entwickeln.
dotnet myapp.dll
wenn die CLI zum Ausführen einer App erforderlich ist, wie um alles in der Welt kann sie nicht Teil der Laufzeit sein?Laufzeit : Apps ausführen
SDK (Runtime + Tooling) : Zum Erstellen und Ausführen von Apps
quelle
Ich erfinde hier nichts. Kopieren Sie einfach die Definitionen von https://www.microsoft.com/net/download
Das Software Development Kit ( SDK ) enthält alles, was Sie zum Erstellen und Ausführen von .NET Core-Anwendungen mit Befehlszeilentools und einem beliebigen Editor (einschließlich Visual Studio) benötigen.
Die Laufzeit enthält nur die Ressourcen, die zum Ausführen vorhandener .NET Core-Anwendungen erforderlich sind. Die Laufzeit ist im SDK enthalten.
quelle
Teilen aus Rick Strahls Beitrag: Welchen .NET Core Runtime Download benötigen Sie?
Zum Ausführen einer Anwendung ist nur die .NET Core Runtime erforderlich, die Informationen zur Installation enthält.
Zum Entwickeln, Erstellen und Veröffentlichen einer Anwendung ist ein SDK erforderlich.
Wenn der Befehl fehlschlägt, ist die .NET Core-Laufzeit nicht im PATH des Systems installiert oder verfügbar.
Unten finden Sie eine Beispielausgabe des Befehls.
Durch die Installation eines SDK wird auch die Laufzeit installiert.
MacOS Homebrew spezifisch
Die Installation des Homebrew-Cask- Dotnet steht in Konflikt mit dem Dotnet-SDK . Um sowohl die Laufzeit als auch das SDK zu erhalten, installieren Sie Dotnet-SDK
Kurz gesagt, die Laufzeit ermöglicht es Ihrem Betriebssystem, kompilierte C-Sharp , C # -Programme auszuführen , und das SDK ermöglicht es Ihnen, in C-Sharp , C # geschriebene Programme zu kompilieren .
<TargetFramework>netcoreapp2.1</TargetFramework>
Verweise:
quelle
Microsoft.AspNetCore.App
unter Laufzeiten aufgeführt? Ich dachte, CLR wäre eine Laufzeit?shared/Microsoft.NETCore.App/<runtime version>
sind die Laufzeiten. Dasshared/Microsoft.AspNetCore.{App,All}/<aspnetcore version>
enthält die ASP.NET Core-Bibliotheken. docs.microsoft.com/en-us/dotnet/core/build/…Das SDK ist alles, was benötigt wird / erleichtert die Entwicklung einer .NET Core-Anwendung, wie z. B. der CLI und eines Compilers.
Die Laufzeit ist die "virtuelle Maschine", die die Anwendung hostet / ausführt und die gesamte Interaktion mit dem Basisbetriebssystem abstrahiert.
quelle
Zusammenfassend: Wenn Sie SDK installieren, haben Sie alles, was Sie für die Entwicklung und Ausführung der App benötigen.
quelle
Das SDK enthält normalerweise Dokumentation und andere Hilfedateien. Die Laufzeit enthält nur die Binärdateien für die Installation.
quelle
Wenn Sie die Antwort von Stormwild hinzufügen, falls Sie nur die .Net Core Runtime installiert haben, erhalten Sie die folgende Ausgabe von dotnet --info
quelle
Die Laufzeit reicht aus, wenn wir nur eine Anwendung auf Hardware ausführen möchten. Andernfalls benötigen wir zum Entwickeln und Ausführen ein SDK (einschließlich Laufzeit und Tools).
quelle
In einfachen Worten, nach meinem Verständnis und der Referenz aus dem Artikel https://karthikekblog.com/net-core-sdk-vs-runtime-vs-hosting-bundle/
.NET SDK - Dies umfasst alles, was Sie vom Erstellen einer .NET Core-Anwendung bis zum Erstellen, Ausführen und Veröffentlichen der Anwendungen benötigen. Dies erfordert lediglich die Entwicklungsumgebung, sodass Entwickler die Anwendung von Grund auf neu entwickeln und die Anwendung erstellen, debuggen und ausführen können.
Laufzeit - Dies hat nur die Komponenten, die zum Ausführen der .NET Core-Anwendungen erforderlich sind. Dies kann also auf der Serverseite installiert werden, auf der Sie die Anwendung bereitstellen und keine Builds und Debugs benötigen. IIS-Hosting-Komponenten waren separat erforderlich. Stattdessen können Sie das Hosting Bundle für Windows verwenden.
quelle
Wenn Sie SDK installieren, erhalten Sie auch Laufzeit darin. Überprüfen Sie dies unten. Dies wird installiert, wenn wir das SDK installieren.
Folgendes wurde unter C installiert: \ Programme \ dotnet • .NET Core SDK 2.2.100 • .NET Core Runtime 2.2.0 • ASP.NET Core Runtime 2.2.0
quelle