.NET Core Anwendungsbereitstellung.NET Core application deployment

Sie können zwei Arten von Bereitstellungen für .NET Core-Anwendungen erstellen:You can create two types of deployments for .NET Core applications:

  • Framework-abhängige Bereitstellung.Framework-dependent deployment. Wie der Name schon sagt, benötigt eine Framework-abhängige Bereitstellung (Framework-Dependent Deployment, FDD) eine gemeinsame systemweite Version von .NET Core auf dem Zielsystem.As the name implies, framework-dependent deployment (FDD) relies on the presence of a shared system-wide version of .NET Core on the target system. Da .NET Core bereits vorhanden ist, ist Ihre Anwendung auch zwischen .NET Core-Installationen übertragbar.Because .NET Core is already present, your app is also portable between installations of .NET Core. Ihre Anwendung enthält nur ihren eigenen Code und Drittanbieter-Abhängigkeiten, die außerhalb von .NET Core-Bibliotheken bestehen.Your app contains only its own code and any third-party dependencies that are outside of the .NET Core libraries. FDDs enthalten DLL-Dateien, die mithilfe des dotnet-Hilfsprogramms über die Befehlszeile gestartet werden können.FDDs contain .dll files that can be launched by using the dotnet utility from the command line. dotnet app.dll führt z.B. eine Anwendung namens app aus.For example, dotnet app.dll runs an application named app.

  • Eigenständige Bereitstellung.Self-contained deployment. Im Gegensatz zu FDD müssen bei einer eigenständigen Bereitstellung (Self-Contained Deployment, SCD) die freigegebenen Komponenten nicht auf dem Zielsystem vorhanden sein.Unlike FDD, a self-contained deployment (SCD) doesn't rely on the presence of shared components on the target system. Alle Komponenten, einschließlich .NET Core-Bibliotheken und .NET Core Runtime, sind in der Anwendung enthalten und von anderen .NET Core-Anwendungen isoliert.All components, including both the .NET Core libraries and the .NET Core runtime, are included with the application and are isolated from other .NET Core applications. SCDs enthalten eine ausführbare Datei (z.B. app.exe auf Windows-Plattformen für eine Anwendung namens app), die eine umbenannte Version des plattformspezifischen .NET Core-Hosts darstellt, und eine DLL-Datei (z.B. app.dll), bei der es sich um die eigentliche Anwendung handelt.SCDs include an executable (such as app.exe on Windows platforms for an application named app), which is a renamed version of the platform-specific .NET Core host, and a .dll file (such as app.dll), which is the actual application.

Framework-abhängige Bereitstellungen (FDD)Framework-dependent deployments (FDD)

Für eine FDD stellen Sie nur Ihre Anwendungen und Drittanbieter-Abhängigkeiten bereit.For an FDD, you deploy only your app and any third-party dependencies. Sie müssen .NET Core nicht bereitstellen, da Ihre Anwendung die .NET Core- Version verwendet, die auf dem Zielsystem vorhanden ist.You don't have to deploy .NET Core, since your app will use the version of .NET Core that's present on the target system. Dies ist das Standard-Bereitstellungsmodell für .NET Core-Anwendungen.This is the default deployment model for .NET Core apps.

Warum eine Framework-abhängige Bereitstellung erstellen?Why create a framework-dependent deployment?

Die Bereitstellung einer FDD hat eine Reihe von Vorteilen:Deploying an FDD has a number of advantages:

  • Sie müssen die Zielbetriebssysteme, auf denen Ihre .NET Core-Anwendung ausgeführt wird, nicht im Voraus definieren.You don't have to define the target operating systems that your .NET Core app will run on in advance. Da .NET Core unabhängig vom Betriebssystem ein gemeinsames PE-Dateiformat für ausführbare Dateien verwendet, kann .NET Core Ihrer Anwendung unabhängig vom zugrunde liegenden Betriebssystem ausführen.Because .NET Core uses a common PE file format for executables and libraries regardless of operating system, .NET Core can execute your app regardless of the underlying operating system. Weitere Informationen zum PE-Dateiformat finden Sie unter .NET Assembly-Dateiformat.For more information on the PE file format, see .NET Assembly File Format.

  • Ihr Bereitstellungspaket ist klein.The size of your deployment package is small. Sie müssen nur Ihre Anwendung und deren Abhängigkeiten bereitstellen, nicht .NET Core selbst.You only deploy your app and its dependencies, not .NET Core itself.

  • Mehrere Anwendungen verwenden die gleiche .NET Core-Installation, die Speicherplatz und Arbeitsspeicher auf dem Hostsystem verringert.Multiple apps use the same .NET Core installation, which reduces both disk space and memory usage on host systems.

Es gibt auch einige Nachteile:There are also a few disadvantages:

  • Ihre Anwendung kann nur ausgeführt werden, wenn die .NET Core-Version die Sie anvisieren oder eine höhere Version bereits auf dem Hostsystem installiert ist.Your app can run only if the version of .NET Core that you target, or a later version, is already installed on the host system.

  • Es ist möglich, dass die .NET Core Runtime und die Bibliotheken ohne Ihr Wissen in zukünftigen Versionen geändert werden.It's possible for the .NET Core runtime and libraries to change without your knowledge in future releases. In seltenen Fällen kann dies das Verhalten Ihrer Anwendung ändern.In rare cases, this may change the behavior of your app.

Eigenständige Bereitstellungen (Self-contained deployments, SCD)Self-contained deployments (SCD)

Bei einer eigenständigen Bereitstellung stellen Sie nicht nur Ihre Anwendung und alle erforderlichen Drittanbieterabhängigkeiten bereit, sondern auch die .NET Core-Version, mit der Sie Ihre Anwendung erstellt haben.For a self-contained deployment, you deploy your app and any required third-party dependencies along with the version of .NET Core that you used to build the app. Eine eigenständige Bereitstellung schließt allerdings nicht die nativen Abhängigkeiten von .NET Core auf verschiedenen Plattformen mit ein. Diese müssen daher vor dem Ausführen der Anwendung installiert werden.Creating an SCD doesn't include the native dependencies of .NET Core on various platforms, so these must be present before the app runs.

Framework-abhängige Bereitstellungen (FDD) und eigenständige Bereitstellungen (SCD) verwenden getrennte ausführbare Hostdateien, sodass Sie eine ausführbare Hostdatei für eine SCD mit Ihrer Herausgebersignatur signieren können.FDD and SCD deployments use separate host executables, so you can sign a host executable for an SCD with your publisher signature.

Was spricht für eine eigenständige Bereitstellung?Why deploy a self-contained deployment?

Das Bereitstellen einer eigenständigen Bereitstellung hat zwei wesentliche Vorteile:Deploying a Self-contained deployment has two major advantages:

  • Sie haben die alleinige Kontrolle über die .NET Core-Version, die mit Ihrer Anwendung bereitgestellt wird.You have sole control of the version of .NET Core that is deployed with your app. .NET Core kann nur von Ihnen bearbeitet werden..NET Core can be serviced only by you.

  • Sie können sicher sein, dass das Zielsystem Ihre .NET Core-Anwendung ausführen kann, da Sie die .NET Core-Version bereitstellen, die darauf ausgeführt werden soll.You can be assured that the target system can run your .NET Core app, since you're providing the version of .NET Core that it will run on.

Es hat auch einige Nachteile:It also has a number of disadvantages:

  • Da .NET Core in Ihrem Bereitstellungspaket enthalten ist, müssen Sie die Zielplattformen auswählen, für die Sie im Voraus Bereitstellungspaketen erstellen.Because .NET Core is included in your deployment package, you must select the target platforms for which you build deployment packages in advance.

  • Die Größe Ihres Bereitstellungspakets ist relativ groß, da es auch .NET Core, Ihre Anwendung und ihre Drittanbieter-Abhängigkeiten enthält.The size of your deployment package is relatively large, since you have to include .NET Core as well as your app and its third-party dependencies.

  • Das Bereitstellen von zahlreichen eigenständigen .NET Core-Anwendungen auf ein System kann viel Speicherplatz verbrauchen, da jede Anwendung .NET Core-Dateien dupliziert.Deploying numerous self-contained .NET Core apps to a system can consume significant amounts of disk space, since each app duplicates .NET Core files.

Beispiele mit SchrittanleitungenStep-by-step examples

Beispiele mit Schrittanleitungen für die Bereitstellung von .NET Core-Apps mit Befehlszeilenschnittstellentools finden Sie unter Deploying .NET Core Apps with CLI Tools (Bereitstellen von .NET Core-Apps mit Befehlszeilenschnittstellentools).For step-by-step examples of deploying .NET Core apps with CLI tools, see Deploying .NET Core Apps with CLI Tools. Beispiele mit Schrittanleitungen für die Bereitstellung von .NET Core-Apps mit Visual Studio finden Sie unter Deploying .NET Core Apps with Visual Studio (Bereitstellen von .NET Core-Apps mit Visual Studio).For step-by-step examples of deploying .NET Core apps with Visual Studio, see Deploying .NET Core Apps with Visual Studio. Jedes Thema enthält Beispiele der folgenden Bereitstellungen:Each topic includes examples of the following deployments:

  • Framework-abhängige BereitstellungFramework-dependent deployment
  • Framework-abhängige Bereitstellung mit DrittanbieterabhängigkeitenFramework-dependent deployment with third-party dependencies
  • Eigenständige BereitstellungSelf-contained deployment
  • Eigenständige Bereitstellung mit DrittanbieterabhängigkeitenSelf-contained deployment with third-party dependencies

Siehe auchSee also

Deploying .NET Core Apps with CLI Tools (Bereitstellen von .NET Core-Apps mit Befehlszeilenschnittstellentools)Deploying .NET Core Apps with CLI Tools
Deploying .NET Core Apps with Visual Studio (Bereitstellen von .NET Core-Apps mit Visual Studio)Deploying .NET Core Apps with Visual Studio
Pakete, Metapakete und Frameworks Packages, Metapackages and Frameworks
.NET Core Runtime-ID (RID)-Katalog.NET Core Runtime IDentifier (RID) catalog