Sdílet prostřednictvím


Přehled publikování .NET aplikací

Tento článek vysvětluje různé způsoby publikování .NET aplikace. Popisuje režimy publikování, způsob vytváření spustitelných souborů a binárních souborů pro různé platformy a dopad jednotlivých přístupů na prostředí nasazení a modulu runtime. Aplikace .NET můžete publikovat pomocí rozhraní příkazového řádku .NET nebo Visual Studio.

Krátký kurz publikování najdete v tématu Tutorial: Publikování konzolové aplikace .NET.

Krátký kurz publikování najdete v tématu Tutorial: Publikování konzolové aplikace .NET.

Co je publikování

Publikování aplikace .NET znamená kompilaci zdrojového kódu pro vytvoření spustitelného souboru nebo binárního souboru spolu s jeho závislostmi a souvisejícími soubory pro distribuci. Po publikování nasadíte aplikaci na server, distribuční platformu, kontejner nebo cloudové prostředí. Proces publikování připraví aplikaci na nasazení a použití mimo vývojové prostředí.

Režimy publikování

Existují dva primární způsoby publikování aplikace. Mezi faktory, které ovlivňují toto rozhodnutí, patří to, jestli má prostředí nasazení nainstalované odpovídající .NET Runtime a jestli potřebujete konkrétní funkce kompilace, které vyžadují sdružování modulu runtime s vaší aplikací. Mezi dva režimy publikování patří:

  • Publikovat jako samostatná aplikace
    Tento režim vytvoří složku publikování, která obsahuje spustitelný soubor specifický pro platformu, který se používá ke spuštění aplikace, zkompilovaný binární soubor obsahující kód aplikace, všechny závislosti aplikací a modul runtime .NET potřebný ke spuštění aplikace. Prostředí, na kterém běží aplikace, nemusí mít předinstalované .NET runtime.

  • Publikování závislé na frameworku
    Tento režim vytvoří složku publikování, která obsahuje volitelný spustitelný soubor specifický pro platformu, který se používá ke spuštění aplikace, zkompilovaný binární soubor obsahující kód aplikace a všechny závislosti aplikace. Prostředí, ve kterém je aplikace spuštěná, musí mít nainstalovanou verzi modulu .NET runtime, kterou může aplikace používat.

Důležité

Cílovou platformu zadáte pomocí identifikátoru runtime (RID). Další informace o identifikátorech RID najdete v .NET RID katalogu.

Základy publikování

Nastavení <TargetFramework> souboru projektu určuje výchozí cílovou architekturu při publikování aplikace. Cílové rozhraní můžete změnit na libovolný platný Moniker cílového rozhraní (TFM). Pokud například váš projekt používá <TargetFramework>net9.0</TargetFramework>, vytvoří se binární soubor, který cílí na .NET 9.

Pokud chcete cílit na více než jednu architekturu, můžete nastavit <TargetFrameworks> nastavení na více hodnot TFM oddělených středníkem. Při vytváření aplikace se vaše aplikace sestaví pro každou cílovou architekturu definovanou vaším projektem. Při publikování aplikace ale musíte zadat cílovou architekturu:

Výchozí režim konfigurace sestavení je Release, pokud není změněn pomocí parametru -c.

dotnet publish -c Release -f net9.0

Výchozí výstupní adresář dotnet publish příkazu je ./bin/<BUILD-CONFIGURATION>/<TFM>/publish/. Například dotnet publish -c Release -f net9.0 publikuje do ./bin/Release/net9.0/publish/. Můžete ale zvolit zjednodušenou výstupní cestu a strukturu složek pro všechny sestavení výstupů. Další informace najdete v tématu Rozložení výstupu Artefakty.

V Visual Studio vytvořte samostatné profily publikování pro každou cílovou architekturu.

Přenosné binární soubory

Když publikujete .NET aplikaci, můžete cílit na konkrétní platformu nebo vytvořit přenosný binární soubor. Ve výchozím nastavení i při vytváření přenosného binárního souboru .NET publikuje spustitelný soubor specifický pro platformu ("apphost") spolu s přenosnou knihovnou DLL, pokud toto chování explicitně nezakážete.

Platformově specifický spustitelný soubor je vytvořen kvůli vlastnosti UseAppHost, která je ve výchozím nastavení true. Chcete-li publikovat pouze přenosnou knihovnu DLL bez spustitelného souboru specifického pro platformu, nastavte UseAppHost buď false na příkazovém řádku (-p:UseAppHost=false) nebo jako vlastnost projektu.

Výhodou cílení na konkrétní platformu je, že dokáže zpracovávat nativní závislosti , které může vaše aplikace vyžadovat, a zajistit kompatibilitu s konkrétními požadavky cílové platformy.

Nativní závislosti

Pokud má vaše aplikace nativní závislosti, nemusí se spouštět v jiném operačním systému, pokud je publikovaná jako přenosný binární soubor. Například aplikace, které závisí na rozhraní API Windows, nativně neběží v macOS nebo Linuxu. Pro každou platformu byste museli zadat kód specifický pro platformu a zkompilovat spustitelný soubor.

Zvažte také, jestli knihovna, na kterou jste odkazovali, poskytuje závislosti specifické pro platformu, nemusí se vaše aplikace spouštět na každé platformě. Když ale publikujete a cílíte na konkrétní platformu, zkopírují se do složky publikování závislosti specifické pro danou platformu balíčku NuGet.

Pokud chcete zajistit, aby byla vaše aplikace publikovaná s nativními závislostmi, publikujte ji pro konkrétní platformu:

dotnet publish -c Release -r <RID>
  • -c Release

    Tento přepínač nastaví konfiguraci sestavení na Release, která je optimalizovaná pro produkční nasazení.

  • -r <RID>

    Tento přepínač používá identifikátor modulu runtime (RID) k určení cílové platformy a zajišťuje zahrnutí nativních závislostí (v případě potřeby). Seznam identifikátorů modulu runtime naleznete v katalogu identifikátorů modulu runtime (RID).

  1. Klikněte pravým tlačítkem na projekt v Solution Explorer a vyberte Publish.
  2. Pokud se jedná o první publikování, vyberte jako cíl publikování složku a vyberte Další.
  3. Zvolte umístění složky nebo přijměte výchozí nastavení a pak vyberte Dokončit.
  4. V profilu publikování vyberte Zobrazit všechna nastavení.
  5. Nastavte Target Runtime na požadovanou platformu (například win-x64 pro 64bitových Windows).
  6. Vyberte Uložit a potom Publikovat.

Seznam identifikátorů modulu runtime naleznete v katalogu identifikátorů modulu runtime (RID).

Stručná referenční dokumentace

Následující tabulka obsahuje rychlé příklady publikování aplikace.

Režim publikování Příkaz
Nasazení závislé na rozhraní dotnet publish -c Release [-r <RID>]
Nasazení závislé na rozhraní (DLL) dotnet publish -c Release -p:UseAppHost=false
Samostatné nasazení dotnet publish -c Release [-r <RID>] --self-contained true
Nasazení jedním souborem dotnet publish -c Release [-r <RID>] -p:PublishSingleFile=true
Nativní nasazení AOT dotnet publish -c Release [-r <RID>] -p:PublishAot=true
Nasazení ReadyToRun dotnet publish -c Release [-r <RID>] -p:PublishReadyToRun=true
Nasazení kontejneru dotnet publish -c Release [-r <RID>] -t:PublishContainer

Nasazení závislé na rozhraní

Nasazení závislé na frameworku je výchozím režimem při publikování z CLI (rozhraní příkazového řádku) nebo Visual Studio. V tomto režimu se vytvoří spustitelný soubor specifický pro platformu, který se dá použít ke spuštění aplikace. Spustitelný soubor specifický pro platformu má podobný název jako myapp.exe na Windows nebo jen myapp na jiných platformách.

Vaše aplikace je nakonfigurovaná tak, aby cílila na konkrétní verzi .NET. Požadované rozhraní .NET runtime musí být v prostředí, kde běží vaše aplikace. Pokud například vaše aplikace cílí na .NET 9, musí mít nainstalované prostředí, na kterém běží vaše aplikace, .NET 9 runtime.

Nasazení závislé na rámci vytvoří aplikaci, která se automaticky aktualizuje na nejnovější .NET aktualizaci zabezpečení dostupnou v prostředí, ve kterém je aplikace spuštěná. Další informace o vazbě verzí v době kompilace najdete v tématu Vyberte verzi .NET, která se má použít.

Výhody

  • Malé nasazení: Distribuují se jenom aplikace a její závislosti. Prostředí, ve kterém je aplikace spuštěná, už musí mít nainstalovaný modul .NET runtime.
  • Cross-platform: Aplikace a libovolná knihovna založená na .NET běží v jiných operačních systémech.
  • Používá nejnovější opravený modul runtime: Aplikace používá nejnovější modul runtime nainstalovaný v prostředí.

Nevýhody

  • Vyžaduje předinstalaci modulu runtime: Aplikace může běžet pouze, pokud je verze .NET, na kterou se zaměřuje, již v prostředí nainstalovaná.
  • .NET se může změnit: Prostředí, ve kterém je aplikace spuštěná, může používat novější modul runtime .NET, který může změnit chování aplikace.

Spuštění aplikací závislých na architektuře

Existují dva způsoby spuštění aplikací závislých na architektuře: prostřednictvím spustitelného souboru specifického pro platformu ("apphost") a prostřednictvím dotnet myapp.dll. Spustitelný soubor apphost můžete spustit přímo místo volání dotnet myapp.dll, což je stále přijatelný způsob, jak aplikaci spustit. Kdykoli je to možné, doporučujeme použít apphost. Používání hostitele apphost má řadu výhod:

  • Spustitelné soubory se zobrazují jako standardní spustitelné soubory nativní platformy.
  • Názvy spustitelných souborů se zachovají v názvech procesů, což znamená, že aplikace lze snadno rozpoznat na základě jejich názvů.
  • Vzhledem k tomu, že apphost je nativní binární soubor, dají se k nim připojit nativní prostředky, jako jsou manifesty.
  • Apphost má ve výchozím nastavení k dispozici omezení zabezpečení nízké úrovně, které z něj činí bezpečnější. Například zásobník stínové technologie CET (Control-flow Enforcement Technology) je ve výchozím nastavení povolený od .NET 9. Opatření aplikovaná na dotnet představují společný základ všech podporovaných runtimů.

Publikovat

dotnet publish -c Release [-r <RID>]
  • -c Release

    Tento přepínač nastaví konfiguraci sestavení na Release, která je optimalizovaná pro produkční nasazení.

  • -r <RID>

    Tento přepínač používá identifikátor modulu runtime (RID) k určení cílové platformy a zajišťuje zahrnutí nativních závislostí (v případě potřeby). Seznam identifikátorů modulu runtime naleznete v katalogu identifikátorů modulu runtime (RID).

Nebo explicitně:

dotnet publish -c Release [-r <RID>] --self-contained false
  • --self-contained false

    Tento přepínač explicitně specifikuje .NET SDK, aby vytvořil nasazení závislé na frameworku.

  1. Klikněte pravým tlačítkem na projekt v Solution Explorer a vyberte Publish.
  2. Pokud se jedná o první publikování, vyberte jako cíl publikování složku a vyberte Další.
  3. Zvolte umístění složky nebo přijměte výchozí nastavení a pak vyberte Dokončit.
  4. V profilu publikování vyberte Zobrazit všechna nastavení.
  5. Nastavte režim nasazení na závislý na rozhraní (toto je výchozí nastavení).
  6. Nastavte Target Runtime na požadovanou platformu (například win-x64 pro 64bitové Windows).
  7. Vyberte Uložit a potom Publikovat.

Konfigurace chování vyhledávání při instalaci .NET

Ve výchozím nastavení apphost nejprve zjišťuje a používá globálně nainstalovaný .NET runtime, přičemž umístění instalace liší podle platformy. Další informace o zjišťování a instalaci modulu runtime naleznete v tématu Řešení potíží se selháním spuštění aplikace.

Cestu modulu runtime .NET lze také přizpůsobit podle jednotlivých spuštění. Proměnnou DOTNET_ROOT prostředí lze použít k nasměrování na vlastní umístění. Další informace o všech možnostech konfigurace DOTNET_ROOT najdete v tématu .NET proměnných prostředí.

Obecně platí, že osvědčeným postupem pro použití DOTNET_ROOT je:

  1. Nejprve vymažte DOTNET_ROOT proměnné prostředí, což znamená všechny proměnné prostředí, které začínají textem DOTNET_ROOT.
  2. Nastavte DOTNET_ROOTa pouze DOTNET_ROOTna cílovou cestu.
  3. Spusťte cílového hostitele apphost.

Ve .NET 9 a novějších verzích můžete nakonfigurovat cesty hledání .NET publikovaného spustitelného souboru prostřednictvím vlastností AppHostDotNetSearch a AppHostRelativeDotNet.

AppHostDotNetSearch umožňuje zadat jedno nebo více umístění, kde spustitelný soubor vyhledá instalaci .NET:

AppHostRelativeDotNet určuje cestu vzhledem ke spustitelnému souboru, která bude prohledána, pokud AppHostDotNetSearch obsahuje AppRelative.

Další informace najdete v tématu AppHostDotNetSearch, AppHostRelativeDotNet a možnostech umístění instalace v AppHost.

Nasazení knihovny DLL pro různé platformy

Alternativně můžete aplikaci publikovat jako multiplatformní knihovnu DLL bez spustitelného souboru specifického pro danou platformu. V tomto režimu se vytvoří myapp.dll soubor ve výstupní složce publikování. Aplikaci spustíte tak, že přejdete do výstupní složky a použijete příkaz dotnet myapp.dll .

Publikování jako knihovny DLL pro různé platformy:

dotnet publish -c Release -p:UseAppHost=false
  • -c Release

    Tento přepínač nastaví konfiguraci sestavení na Release, která je optimalizovaná pro produkční nasazení.

  • -p:UseAppHost=false

    Tato vlastnost zakáže vytvoření spustitelného souboru specifického pro platformu a vytvoří pouze přenosnou knihovnu DLL.

  1. Klikněte pravým tlačítkem na projekt v Solution Explorer a vyberte Publish.
  2. Pokud se jedná o první publikování, vyberte jako cíl publikování složku a vyberte Další.
  3. Zvolte umístění složky nebo přijměte výchozí nastavení a pak vyberte Dokončit.
  4. V profilu publikování vyberte Zobrazit všechna nastavení.
  5. Nastavte režim nasazení na závislé na rozhraní.
  6. Zrušte zaškrtnutí políčka Vytvořit jeden soubor.
  7. Nastavte cílový modul runtime na portable (nebo ponechte prázdné).
  8. Vyberte Uložit a potom Publikovat.

Samostatné nasazení

Když publikujete samostatný balíček (SCD), proces publikování vytvoří spustitelný soubor specifický pro platformu. Publikování SCD zahrnuje všechny požadované soubory .NET ke spuštění aplikace, ale nezahrnuje nativní závislosti .NET. Tyto závislosti musí být přítomné v prostředí před spuštěním aplikace.

Vydání SCD vytvoří aplikaci, která se neaktualizuje na nejnovější dostupnou .NET aktualizaci zabezpečení. Další informace o vazbě verzí v době kompilace najdete v tématu Vyberte verzi .NET, která se má použít.

Výhody

  • Řízení verze .NET: Určete, která verze .NET se nasadí s aplikací.
  • Cílení na konkrétní platformu: Vzhledem k tomu, že aplikace musí být publikovaná pro každou platformu, je jasné, kde aplikace běží.

Nevýhody

  • Větší nasazení: Vzhledem k tomu, že aplikace zahrnuje modul runtime .NET a všechny závislosti, je požadovaná velikost stahování a požadované místo na pevném disku větší než nasazení závislé na frameworku.
  • Těžší aktualizace verze .NET: Modul runtime .NET lze aktualizovat pouze vydáním nové verze aplikace.

Spropitné

Celkovou velikost kompatibilních samostatných aplikací můžete zmenšit tak, že publikujete s ořezáním nebo povolíte invariantní režim globalizace. Další informace o invariantní režim globalizace naleznete v tématu .NET Globalization Invariant Mode.

Publikovat

dotnet publish -c Release -r <RID> --self-contained true
  • -c Release

    Tento přepínač nastaví konfiguraci sestavení na Release, která je optimalizovaná pro produkční nasazení.

  • -r <RID>

    Tento přepínač používá identifikátor modulu runtime (RID) k určení cílové platformy a zajišťuje zahrnutí nativních závislostí (v případě potřeby). Seznam identifikátorů modulu runtime naleznete v katalogu identifikátorů modulu runtime (RID).

  • --self-contained true

    Tento přepínač určuje sadě .NET SDK, aby vytvořila spustitelný soubor jako nezávislé nasazení (SCD).

  1. Klikněte pravým tlačítkem na projekt v Solution Explorer a vyberte Publish.
  2. Pokud se jedná o první publikování, vyberte jako cíl publikování složku a vyberte Další.
  3. Zvolte umístění složky nebo přijměte výchozí nastavení a pak vyberte Dokončit.
  4. V profilu publikování vyberte Zobrazit všechna nastavení.
  5. Nastavte režim nasazení na samostatné.
  6. Nastavte Target Runtime na požadovanou platformu (například win-x64 pro 64bitové Windows).
  7. Vyberte Uložit a potom Publikovat.

Nasazení jedním souborem

Když aplikaci publikujete jako nasazení s jedním souborem, všechny soubory závislé na aplikaci se sbalí do jednoho binárního souboru. Tento model nasazení je k dispozici pro aplikace závislé na rozhraní i samostatné aplikace, což poskytuje atraktivní možnost nasazení a distribuce aplikace jako jednoho souboru.

Jednosouborové aplikace jsou vždy specifické pro operační systém a architekturu. Potřebujete publikovat každou konfiguraci, například Linux x64, Linux Arm64, Windows x64 atd.

Výhody

  • Zjednodušená distribuce: Nasaďte a distribuujte aplikaci jako jeden spustitelný soubor.
  • Omezené nepotřebné soubory: Všechny závislosti jsou spojeny a eliminují potřebu správy více souborů.
  • Snadné nasazení: Zkopírujte jeden soubor pro nasazení aplikace.

Nevýhody

  • Větší velikost souboru: Jeden soubor obsahuje všechny závislosti, takže je větší než jednotlivé soubory.
  • Pomalejší spouštění: Soubory musí být extrahovány za běhu, což může mít vliv na výkon při spuštění.
  • Specifické pro platformu: Musí publikovat samostatné soubory pro každou cílovou platformu.

Nasazení s jedním souborem lze kombinovat s dalšími optimalizacemi, jako je trimming a kompilace ReadyToRun, pro lepší výkon.

Další informace o nasazení s jedním souborem najdete v tématu Nasazení s jedním souborem.

Publikovat

dotnet publish -c Release -r <RID> -p:PublishSingleFile=true
  • -c Release

    Tento přepínač nastaví konfiguraci sestavení na Release, která je optimalizovaná pro produkční nasazení.

  • -r <RID>

    Tento přepínač používá identifikátor modulu runtime (RID) k určení cílové platformy a zajišťuje zahrnutí nativních závislostí (v případě potřeby). Seznam identifikátorů modulu runtime naleznete v katalogu identifikátorů modulu runtime (RID).

  • -p:PublishSingleFile=true

    Tato vlastnost sbalí všechny soubory závislé na aplikaci do jednoho binárního souboru.

  1. Klikněte pravým tlačítkem na projekt v Solution Explorer a vyberte Publish.
  2. Pokud se jedná o první publikování, vyberte jako cíl publikování složku a vyberte Další.
  3. Zvolte umístění složky nebo přijměte výchozí nastavení a pak vyberte Dokončit.
  4. V profilu publikování vyberte Zobrazit všechna nastavení.
  5. Nastavte režim nasazení na samostatný nebo závislý na rozhraní.
  6. Nastavte Target Runtime na požadovanou platformu (například win-x64 pro 64bitové Windows).
  7. Zaškrtněte políčko Vytvořit jeden soubor.
  8. Vyberte Uložit a potom Publikovat.

Nativní nasazení AOT

Nativní nasazení AOT zkompiluje aplikaci přímo do nativního kódu a eliminuje potřebu modulu runtime. Tato možnost publikování používá samostatný režim nasazení , protože zkompilovaný nativní kód musí obsahovat vše potřebné ke spuštění aplikace. Výsledkem je rychlejší spouštění a menší využití paměti, ale má určitá omezení podporovaných funkcí.

Výhody

  • Rychlé spuštění: Za běhu není nutná žádná kompilace JIT, což vede k rychlejšímu spuštění aplikace.
  • Redukované využití paměti: Nižší nároky na paměť v porovnání s tradičními aplikacemi .NET.
  • Žádná závislost na modulu runtime: Aplikace běží bez nutnosti instalace modulu runtime .NET.
  • Menší velikost nasazení: Často menší než samostatné nasazení s úplným modulem runtime.

Nevýhody

  • Limited framework support: Ne všechny .NET funkce a knihovny jsou kompatibilní s nativní AOT.
  • Delší časy sestavení: Kompilace do nativního kódu trvá déle než běžná sestavení.
  • Specifické pro platformu: Musí se zkompilovat samostatně pro každou cílovou platformu a architekturu.
  • Omezení ladění: Složitější prostředí ladění v porovnání s běžnými aplikacemi .NET.

Další informace o nativním nasazení AOT najdete v tématu Nativní nasazení AOT.

Publikovat

dotnet publish -c Release -r <RID> -p:PublishAot=true
  • -c Release

    Tento přepínač nastaví konfiguraci sestavení na Release, která je optimalizovaná pro produkční nasazení.

  • -r <RID>

    Tento přepínač používá identifikátor modulu runtime (RID) k určení cílové platformy a zajišťuje zahrnutí nativních závislostí (v případě potřeby). Seznam identifikátorů modulu runtime naleznete v katalogu identifikátorů modulu runtime (RID).

  • -p:PublishAot=true

    Tato vlastnost umožňuje nativní kompilaci AOT, která aplikaci zkompiluje přímo do nativního kódu.

Nativní publikování AOT musí být nakonfigurováno v souboru projektu. Nemůžete ho povolit prostřednictvím uživatelského rozhraní pro publikování Visual Studio.

  1. V Solution Explorer klikněte pravým tlačítkem na projekt a vyberte Edit Project File.

  2. Přidejte následující vlastnost do <PropertyGroup>:

    <PublishAot>true</PublishAot>
    
  3. Uložte soubor projektu.

  4. Klikněte pravým tlačítkem na projekt v Solution Explorer a vyberte Publish.

  5. Pokud se jedná o první publikování, vyberte jako cíl publikování složku a vyberte Další.

  6. Zvolte umístění složky nebo přijměte výchozí nastavení a pak vyberte Dokončit.

  7. V profilu publikování vyberte Zobrazit všechna nastavení.

  8. Nastavte režim nasazení na samostatné.

  9. Nastavte Target Runtime na požadovanou platformu (například win-x64 pro 64bitové Windows).

  10. Vyberte Uložit a potom Publikovat.

Další informace o nativním nasazení AOT najdete v tématu Nativní nasazení AOT.

Nasazení ReadyToRun

Když publikujete aplikaci s kompilací ReadyToRun, sestavení aplikace se kompilují jako formát ReadyToRun (R2R). R2R je forma předběžné kompilace AOT (ahead-of-time), která zlepšuje dobu spouštění snížením množství práce, kterou kompilátor JIT (just-in-time) potřebuje provést při načítání aplikace. Tuto možnost publikování je možné použít s režimy nasazení závislými na rozhraní i samostatně obsaženými režimy nasazení.

Binární soubory ReadyToRun obsahují kód zprostředkujícího jazyka (IL) i nativní verzi stejného kódu. Binární soubory R2R jsou větší než běžná sestavení, ale poskytují lepší výkon při spuštění.

Výhody

  • Vylepšená doba spuštění: Aplikace stráví méně času spuštěním kompilátoru JIT během spouštění.
  • Lepší výkon při prvním použití: Nižší latence při prvním spuštění cest kódu.
  • Kompatibilní s existujícím kódem: Funguje s většinou knihoven a architektur .NET beze změny.
  • Flexibilní nasazení: Lze kombinovat s režimy nasazení závislé na rozhraní i s režimy nasazení, které jsou samostatné.

Nevýhody

  • Větší velikost: Aplikace je na disku větší kvůli zahrnutí il i nativního kódu.
  • Delší časy sestavení: Kompilace trvá déle než standardní publikování.
  • Optimalizace specifické pro platformu: Nejlepší zvýšení výkonu vyžaduje cílení na konkrétní platformy.

Publikovat

dotnet publish -c Release -r <RID> -p:PublishReadyToRun=true
  • -c Release

    Tento přepínač nastaví konfiguraci sestavení na Release, která je optimalizovaná pro produkční nasazení.

  • -r <RID>

    Tento přepínač používá identifikátor modulu runtime (RID) k určení cílové platformy a zajišťuje zahrnutí nativních závislostí (v případě potřeby). Seznam identifikátorů modulu runtime naleznete v katalogu identifikátorů modulu runtime (RID).

  • -p:PublishReadyToRun=true

    Tato vlastnost umožňuje kompilaci ReadyToRun, která zlepšuje výkon při spuštění tím, že předem kompiluje sestavení.

  1. Klikněte pravým tlačítkem na projekt v Solution Explorer a vyberte Publish.
  2. Pokud se jedná o první publikování, vyberte jako cíl publikování složku a vyberte Další.
  3. Zvolte umístění složky nebo přijměte výchozí nastavení a pak vyberte Dokončit.
  4. V profilu publikování vyberte Zobrazit všechna nastavení.
  5. Nastavte režim nasazení na samostatný nebo závislý na rozhraní.
  6. Nastavte Target Runtime na požadovanou platformu (například win-x64 pro 64bitové Windows).
  7. Zkontrolujte kompilaci Enable ReadyToRun.
  8. Vyberte Uložit a potom Publikovat.

Další informace o nasazení ReadyToRun naleznete v tématu Kompilace ReadyToRun.

Nasazení kontejneru

Když aplikaci publikujete jako kontejner, sada .NET SDK zabalí vaši aplikaci a její závislosti do image kontejneru bez nutnosti samostatného souboru Dockerfile. Tento režim nasazení vytvoří úplnou image kontejneru, kterou lze spustit v jakémkoli modulu runtime kontejneru, jako je Docker nebo Podman. Nasazení kontejnerů zjednodušuje proces kontejnerizace tím, že eliminuje potřebu zapisovat a udržovat soubory Dockerfile při poskytování optimalizovaných základních imagí.

Počínaje .NET SDK 8.0.200 je podpora kontejnerů ve výchozím nastavení zahrnutá a nevyžaduje další balíčky NuGet. U konzolových aplikací možná budete muset výslovně povolit podporu kontejneru nastavením vlastnosti na EnableSdkContainerSupporttrue hodnotu.

Spropitné

Další informace o nastaveních projektu souvisejících s kontejnery najdete v tématu Containerize referenční informace k aplikaci .NET.

Výhody

  • Zjednodušená kontejnerizace: Pro základní scénáře není nutné zapisovat ani udržovat soubory Dockerfile.
  • Optimalizované základní obrazy: Používá základní obrazy poskytované společností Microsoft s nejnovějšími aktualizacemi zabezpečení.
  • Konzistentní prostředí: Zajišťuje konzistentní běhové prostředí napříč vývojem, testováním a produkčním prostředím.
  • Snadná distribuce: Image kontejnerů je možné snadno sdílet a nasazovat v různých prostředích.
  • Izolace platformy: Aplikace běží v izolovaných kontejnerech a snižují konflikty mezi aplikacemi.

Nevýhody

  • Závislost modulu runtime kontejneru: Cílové prostředí musí mít nainstalovaný modul runtime kontejneru.
  • Velikost obrazu: Obrazy kontejnerů jsou obvykle větší než jiné metody nasazení.
  • Křivka učení: Vyžaduje pochopení konceptů kontejnerů a nástrojů.
  • Omezené přizpůsobení: Menší flexibilita ve srovnání s vlastními soubory Dockerfile pro složité scénáře.

Publikovat

dotnet publish -c Release [-r <RID>] /t:PublishContainer
  • -c Release

    Tento přepínač nastaví konfiguraci sestavení na Release, která je optimalizovaná pro produkční nasazení.

  • -r <RID>

    Tento přepínač používá identifikátor modulu runtime (RID) k určení cílové platformy a zajišťuje zahrnutí nativních závislostí (v případě potřeby). Seznam identifikátorů modulu runtime naleznete v katalogu identifikátorů modulu runtime (RID).

  • -t:PublishContainer

    Tento cíl publikuje aplikaci jako image kontejneru.

Můžete také použít přístup k profilu publikování:

dotnet publish -c Release [-r <RID>] -p:PublishProfile=DefaultContainer
  • -p:PublishProfile=DefaultContainer

    Tento profil aktivuje proces publikování kontejneru.

  1. Klikněte pravým tlačítkem na projekt v Solution Explorer a vyberte Publish.
  2. Jako cíl publikování vyberte Container Registry a vyberte Další.
  3. Zvolte cílový registr kontejneru (například Azure Container Registry, Docker Hub nebo Generic Registry) a vyberte Dalši.
  4. Nakonfigurujte podrobnosti o připojení registru a ověřování.
  5. V profilu publikování vyberte Zobrazit všechna nastavení.
  6. Nastavte režim nasazení na samostatné nebo založené na rozhraní podle vašich potřeb.
  7. Nastavte cílový modul runtime na požadovanou platformu (například linux-x64 pro kontejnery Linuxu).
  8. Nakonfigurujte nastavení specifická pro kontejnery, jako je název image a značky.
  9. Vyberte Uložit a potom Publikovat.

Další informace o nasazení kontejnerů najdete v tématu .NET přehled vytváření kontejnerů sady SDK.

Viz také