Wdrażanie aplikacji .NET core.NET Core application deployment

Można utworzyć trzy typy wdrożeń dla aplikacji .NET Core:You can create three types of deployments for .NET Core applications:

  • Framework-dependent deployment.Framework-dependent deployment. Jak wskazuje nazwa, zależny od struktury wdrożenia (stacje) zależy od obecności udostępnione całego systemu w wersji programu .NET Core w systemie docelowym.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. Ponieważ platformy .NET Core jest już obecny, Twoja aplikacja jest również do przenoszenia pomiędzy instalacji programu .NET Core.Because .NET Core is already present, your app is also portable between installations of .NET Core. Aplikacja zawiera tylko własnego kodu i wszelkie zależności innych firm, które znajdują się poza biblioteki .NET Core.Your app contains only its own code and any third-party dependencies that are outside of the .NET Core libraries. Zawiera FDDs .dll pliki, które można uruchamiać przy użyciu narzędzia dotnet z wiersza polecenia.FDDs contain .dll files that can be launched by using the dotnet utility from the command line. Na przykład dotnet app.dll uruchamia aplikację o nazwie app.For example, dotnet app.dll runs an application named app.

  • Niezależne wdrożenia.Self-contained deployment. W odróżnieniu od Dyskietki niezależna wdrożenia (— SCD) nie jest zależny od obecności składniki współużytkowane w systemie docelowym.Unlike FDD, a self-contained deployment (SCD) doesn't rely on the presence of shared components on the target system. Wszystkie składniki, łącznie z biblioteki .NET Core i środowisko uruchomieniowe platformy .NET Core, są dołączone do aplikacji i odizolowane od innych aplikacji .NET Core.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 obejmują plik wykonywalny (takie jak app.exe na platformach Windows, dla aplikacji o nazwie app), czyli wersji zmieniono nazwę hosta, specyficzne dla platformy .NET Core, a .dll pliku (np. app.dll), który jest rzeczywista aplikacja.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.

  • Pliki wykonywalne zależny od struktury.Framework-dependent executables. Tworzy plik wykonywalny, który działa na platformie docelowej.Produces an executable that runs on a target platform. Podobnie jak FDDs, zależny od struktury plików wykonywalnych (FDE) są specyficzne dla platformy i nie są niezależne.Similar to FDDs, framework-dependent executables (FDE) are platform-specific and aren't self-contained. Te wdrożenia nadal zależy od obecności udostępniona wersja systemowe programu .NET Core do uruchomienia.These deployments still rely on the presence of a shared system-wide version of .NET Core to run. W odróżnieniu od — SCD aplikacji zawiera tylko kod i wszelkie zależności innych firm, które znajdują się poza biblioteki .NET Core.Unlike an SCD, your app only contains your code and any third-party dependencies that are outside of the .NET Core libraries. FDEs generuje plik wykonywalny, który działa na platformie docelowej.FDEs produce an executable that runs on the target platform.

Zależny od struktury wdrożeń (stacje)Framework-dependent deployments (FDD)

STACJE wdrożysz swojej aplikacji i zależności innych firm.For an FDD, you deploy only your app and third-party dependencies. Twoja aplikacja będzie używać wersji programu .NET Core, który znajduje się w systemie docelowym.Your app will use the version of .NET Core that's present on the target system. Jest to domyślny model wdrażania dla aplikacji platformy .NET Core i ASP.NET Core, przeznaczonych dla platformy .NET Core.This is the default deployment model for .NET Core and ASP.NET Core apps that target .NET Core.

Dlaczego warto tworzyć wdrożenia zależny od struktury?Why create a framework-dependent deployment?

Wdrażanie z stacje ma szereg zalet:Deploying an FDD has a number of advantages:

  • Nie trzeba zdefiniować systemów operacyjnych, korzystających z aplikacji .NET Core będą z wyprzedzeniem.You don't have to define the target operating systems that your .NET Core app will run on in advance. Ponieważ platformy .NET Core używa wspólny format plików PE w przypadku plików wykonywalnych i bibliotek, niezależnie od systemu operacyjnego, platformy .NET Core można wykonać aplikacji niezależnie od zasadniczego systemu operacyjnego.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. Aby uzyskać więcej informacji o formacie pliku PE, zobacz Format pliku zestawu .NET.For more information on the PE file format, see .NET Assembly File Format.

  • Rozmiar pakietu wdrażania jest mały.The size of your deployment package is small. Można wdrażać tylko w aplikacji oraz jego zależności, a nie .NET Core sam.You only deploy your app and its dependencies, not .NET Core itself.

  • O ile nie została zastąpiona, FDDs użyje najnowszej obsługiwanych środowiska uruchomieniowego zainstalowanego w systemie docelowym.Unless overridden, FDDs will use the latest serviced runtime installed on the target system. Dzięki temu aplikacja korzystała poprawionego najnowszej wersji środowiska uruchomieniowego .NET Core.This allows your application to use the latest patched version of the .NET Core runtime.

  • Wiele aplikacji używać tego samego instalacji platformy .NET Core, co zmniejsza zarówno dysku miejsca oraz użycia pamięci w systemach hosta.Multiple apps use the same .NET Core installation, which reduces both disk space and memory usage on host systems.

Dostępne są również kilka wady:There are also a few disadvantages:

  • Aplikację można uruchomić tylko wtedy, gdy wersję platformy .NET Core Twojej aplikacji jest przeznaczony dla lub nowsza wersja, jest już zainstalowany w systemie hosta.Your app can run only if the version of .NET Core your app targets, or a later version, is already installed on the host system.

  • Jest to możliwe, środowisko uruchomieniowe programu .NET Core i bibliotek, które można zmienić bez wiedzy użytkownika w przyszłych wersjach.It's possible for the .NET Core runtime and libraries to change without your knowledge in future releases. W rzadkich przypadkach może to spowodować zmianę zachowania aplikacji.In rare cases, this may change the behavior of your app.

Niezależne wdrożenia (— SCD)Self-contained deployments (SCD)

Niezależne wdrożenia możesz wdrożyć aplikację i wszystkie wymagane zależności innych firm, wraz z wersją programu .NET Core, używanym do tworzenia aplikacji.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. Tworzenie — SCD nie obejmuje natywnych zależności platformy .NET Core na różnych platformach, więc te musi występować przed uruchomieniem aplikacji.Creating an SCD doesn't include the native dependencies of .NET Core on various platforms, so these must be present before the app runs. Aby uzyskać więcej informacji, wiązanie wersji w czasie wykonywania, zobacz artykuł w wiązanie wersji w programie .NET Core.For more information on version binding at runtime, see the article on version binding in .NET Core.

Począwszy od zestawu SDK NET Core 2.1 (wersja 2.1.300), .NET Core obsługuje poprawki wersji przenoszenia do przodu.Starting with NET Core 2.1 SDK (version 2.1.300), .NET Core supports patch version roll forward. Podczas tworzenia wdrożenia niezależna narzędzia .NET Core automatycznie uwzględnia najnowszych obsługiwanych środowiska uruchomieniowego wersji platformy .NET Core, Twoje cele aplikacji.When you create a self-contained deployment, .NET Core tools automatically include the latest serviced runtime of the .NET Core version that your application targets. (Najnowsza wersja obsługiwanych środowiska uruchomieniowego w tym poprawki zabezpieczeń i inne poprawki.) Obsługiwane środowiska uruchomieniowego musi być obecny w systemie kompilacji; jest ona pobierana automatycznie z repozytorium NuGet.org. Aby uzyskać więcej informacji, w tym instrukcje dotyczące sposobu zrezygnować z poprawki wersji przenoszenia do przodu, zobacz niezależna wdrażania środowiska uruchomieniowego przenoszenia do przodu.(The latest serviced runtime includes security patches and other bug fixes.) The serviced runtime does not have to be present on your build system; it is downloaded automatically from NuGet.org. For more information, including instructions on how to opt out of patch version roll forward, see Self-contained deployment runtime roll forward.

Wdrożenia z stacje i — SCD za pomocą hosta oddzielnych plików wykonywalnych, dzięki czemu możesz zarejestrować wykonywalnego hosta — SCD do podpisu wydawcy.FDD and SCD deployments use separate host executables, so you can sign a host executable for an SCD with your publisher signature.

Dlaczego warto wdrożyć niezależna wdrożenia?Why deploy a self-contained deployment?

Niezależna wdrożenie ma dwie główne korzyści:Deploying a Self-contained deployment has two major advantages:

  • Masz wyłączną kontrolę wersji platformy .NET Core, który jest wdrożony z aplikacją.You have sole control of the version of .NET Core that is deployed with your app. .NET core może być obsługiwany tylko przez użytkownika..NET Core can be serviced only by you.

  • Możesz mieć pewność, system docelowy można uruchomić aplikację .NET Core, ponieważ udostępniasz wersję platformy .NET Core, która zostanie uruchomiona na.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.

Ponadto wprowadzono szereg wady:It also has a number of disadvantages:

  • Ponieważ platformy .NET Core jest uwzględniony w pakiecie wdrożenia, należy wybrać platformy docelowe, dla których można tworzyć pakiety wdrożeniowe z wyprzedzeniem.Because .NET Core is included in your deployment package, you must select the target platforms for which you build deployment packages in advance.

  • Rozmiar pakietu wdrażania jest stosunkowo dużych, ponieważ należy dołączyć platformy .NET Core oraz aplikacji i jej zależności innych firm.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.

    Począwszy od programu .NET Core 2.0, można zmniejszyć rozmiaru wdrożenia przez około 28 MB w systemach Linux przy użyciu platformy .NET Core globalizacji niezmiennej tryb.Starting with .NET Core 2.0, you can reduce the size of your deployment on Linux systems by approximately 28 MB by using .NET Core globalization invariant mode. Zazwyczaj, .NET Core w systemie Linux opiera się na bibliotek ICU obsługi globalizacji.Ordinarily, .NET Core on Linux relies on the ICU libraries for globalization support. W trybie niezmiennej bibliotek nie są dołączone do wdrożenia i wszystkich kultur zachowują się jak niezmiennej kultury.In invariant mode, the libraries are not included with your deployment, and all cultures behave like the invariant culture.

  • Wdrażanie wielu samodzielne aplikacje platformy .NET Core w systemie może zużywać znacznej ilości miejsca na dysku, od każdej aplikacji duplikatów plików .NET Core.Deploying numerous self-contained .NET Core apps to a system can consume significant amounts of disk space, since each app duplicates .NET Core files.

Zależny od struktury plików wykonywalnych (FDE)Framework-dependent executables (FDE)

Począwszy od platformy .NET Core 2.2, można wdrożyć aplikację jako FDE oraz wszelkie wymagane zależności innych firm.Starting with .NET Core 2.2, you can deploy your app as an FDE, along with any required third-party dependencies. Twoja aplikacja będzie używać wersji programu .NET Core, który jest zainstalowany w systemie docelowym.Your app will use the version of .NET Core that's installed on the target system.

Dlaczego warto wdrożyć zależny od struktury pliku wykonywalnego?Why deploy a framework-dependent executable?

Wdrażanie FDE ma szereg zalet:Deploying an FDE has a number of advantages:

  • Rozmiar pakietu wdrażania jest mały.The size of your deployment package is small. Można wdrażać tylko w aplikacji oraz jego zależności, a nie .NET Core sam.You only deploy your app and its dependencies, not .NET Core itself.

  • Wiele aplikacji używać tego samego instalacji platformy .NET Core, co zmniejsza zarówno dysku miejsca oraz użycia pamięci w systemach hosta.Multiple apps use the same .NET Core installation, which reduces both disk space and memory usage on host systems.

  • Aplikację można uruchomić, wywołując opublikowanego pliku wykonywalnego bez wywoływania dotnet narzędzie bezpośrednio.Your app can be run by calling the published executable without invoking the dotnet utility directly.

Dostępne są również kilka wady:There are also a few disadvantages:

  • Aplikację można uruchomić tylko wtedy, gdy wersję platformy .NET Core Twojej aplikacji jest przeznaczony dla lub nowsza wersja, jest już zainstalowany w systemie hosta.Your app can run only if the version of .NET Core your app targets, or a later version, is already installed on the host system.

  • Jest to możliwe, środowisko uruchomieniowe programu .NET Core i bibliotek, które można zmienić bez wiedzy użytkownika w przyszłych wersjach.It's possible for the .NET Core runtime and libraries to change without your knowledge in future releases. W rzadkich przypadkach może to spowodować zmianę zachowania aplikacji.In rare cases, this may change the behavior of your app.

  • Należy opublikować aplikację dla każdej platformy docelowej.You must publish your app for each target platform.

Przykłady krok po krokuStep-by-step examples

Instrukcje krok po kroku wdrażania aplikacji .NET Core za pomocą narzędzi interfejsu wiersza polecenia, zobacz wdrażanie aplikacji .NET Core za pomocą narzędzi interfejsu wiersza polecenia.For step-by-step examples of deploying .NET Core apps with CLI tools, see Deploying .NET Core Apps with CLI Tools. Instrukcje krok po kroku wdrażania aplikacji .NET Core za pomocą programu Visual Studio, zobacz wdrażanie aplikacji .NET Core z programem Visual Studio.For step-by-step examples of deploying .NET Core apps with Visual Studio, see Deploying .NET Core Apps with Visual Studio.

Zobacz takżeSee also