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

Można tworzyć dwa typy wdrożeń dla aplikacji .NET Core:You can create two types of deployments for .NET Core applications:

  • Wdrażanie zależny od struktury.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.

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. Nie trzeba wdrażać platformy .NET Core, ponieważ Twoja aplikacja będzie używać wersji programu .NET Core, który znajduje się w systemie docelowym.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. 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.

  • 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 jest to wersja platformy .NET Core, które są przeznaczone lub jego nowsza wersja jest już zainstalowany w systemie hosta.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.

  • 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.

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. Każdy temat zawiera przykłady następujących wdrożeń:Each topic includes examples of the following deployments:

  • Wdrożenie zależny od strukturyFramework-dependent deployment
  • Wdrażanie zależny od struktury za pomocą zależności innych firmFramework-dependent deployment with third-party dependencies
  • Niezależne wdrożeniaSelf-contained deployment
  • Niezależne wdrożenia przy użyciu zależności innych firmSelf-contained deployment with third-party dependencies

Zobacz takżeSee also