Sdílet prostřednictvím


Přehled publikování aplikací .NET

Tento článek vysvětluje různé způsoby publikování aplikace .NET. 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í .NET CLI nebo sady Visual Studio.

Krátký kurz publikování najdete v tématu Kurz: Publikování konzolové aplikace .NET pomocí sady Visual Studio.

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é příslušné prostředí .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ří:

  • Publikování v samostatném prostředí
    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í, ve kterém běží aplikace, nemusí mít předinstalované modul runtime .NET.

  • Publikování závislé na rozhraní
    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 runtime .NET, 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 tématu katalog identifikátorů RID rozhraní .NET.

Základy publikování

Nastavení <TargetFramework> souboru projektu určuje výchozí cílovou architekturu při publikování aplikace. Cílovou architekturu 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 Vydaný, pokud se nezmění s parametrem -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 se ale přihlásit ke zjednodušené výstupní cestě a struktuře složek pro všechny výstupy sestavení. Další informace najdete v tématu Rozložení výstupu Artefakty.

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

Přenosné binární soubory

Při publikování aplikace .NET 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.

Spustitelný soubor specifický pro platformu UseAppHost je vytvořen z důvodu vlastnosti, která 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 pro 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 verzi, 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. V Průzkumníku řešení klikněte pravým tlačítkem myši na projekt a vyberte Publikovat.
  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 cílový modul runtime na požadovanou platformu (například win-x64 pro 64bitovou verzi 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í s 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 rozhraní architektury je výchozím režimem při publikování z rozhraní příkazového řádku nebo sady 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 danou platformu má název něco podobného myapp.exe ve Windows nebo jen myapp na jiných platformách.

Vaše aplikace je nakonfigurovaná tak, aby cílila na konkrétní verzi .NET. Tento cílový modul runtime .NET musí být v prostředí, ve kterém 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, modul runtime .NET 9.

Publikování nasazení závislého na rozhraní vytvoří aplikaci, která se automaticky přepojí na nejnovější opravu zabezpečení .NET dostupnou v prostředí, ve kterém je aplikace spuštěná. Další informace o vazbě verzí v době kompilace naleznete v tématu Výběr verze .NET verze, 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 runtime .NET.
  • Multiplatformní: Aplikace a libovolná . Knihovna založená na technologii 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ředinstalování modulu runtime: Aplikace se může spustit jenom v případě, že verze rozhraní .NET, na které cílí, je už 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 rozhraní .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 verzi, 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ě hlásí sadě .NET SDK, aby vytvořila nasazení závislé na rozhraní.

  1. V Průzkumníku řešení klikněte pravým tlačítkem myši na projekt a vyberte Publikovat.
  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 cílový modul runtime na požadovanou platformu (například win-x64 pro 64bitovou verzi Windows).
  7. Vyberte Uložit a potom Publikovat.

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

Ve výchozím nastavení apphost zjišťuje a používá globálně nainstalované prostředí runtime .NET, přičemž umístění instalace se 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 DOTNET_ROOT možnostech konfigurace najdete v tématu Proměnné prostředí .NET.

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.

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

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, AppHostRelativeDotNeta možnosti instalace umístění 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 myapp.dll se vytvoří 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 verzi, 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. V Průzkumníku řešení klikněte pravým tlačítkem myši na projekt a vyberte Publikovat.
  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é nasazení (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 rozhraní .NET. Tyto závislosti musí být přítomné v prostředí před spuštěním aplikace.

Publikování scD vytvoří aplikaci, která se nepřevádí na nejnovější dostupnou opravu zabezpečení .NET. Další informace o vazbě verzí v době kompilace naleznete v tématu Výběr verze .NET verze, která se má použít.

Výhody

  • Řízení verze .NET: Určuje, která verze rozhraní .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 velikost stahování a požadované místo na pevném disku větší než nasazení závislé na rozhraní.
  • Aktualizace verze .NET je obtížnější: Modul runtime .NET je možné upgradovat pouze vydáním nové verze aplikace.

Spropitné

Celkovou velikost kompatibilních samostatných aplikací můžete zmenšit tak, že publikujete oříznuté nebo povolíte invariantní režim globalizace. Další informace o invariantní režimu globalizace naleznete v tématu Invariantní režim globalizace .NET.

Publikovat

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

    Tento přepínač nastaví konfiguraci sestavení na verzi, 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č říká sadě .NET SDK, aby vytvořil spustitelný soubor jako samostatné nasazení (SCD).

  1. V Průzkumníku řešení klikněte pravým tlačítkem myši na projekt a vyberte Publikovat.
  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 cílový modul runtime na požadovanou platformu (například win-x64 pro 64bitovou verzi Windows).
  7. Vyberte Uložit a potom Publikovat.

Nasazení s 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 oříznutí a kompilace ReadyToRun pro další optimalizaci.

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 verzi, 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. V Průzkumníku řešení klikněte pravým tlačítkem myši na projekt a vyberte Publikovat.
  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 cílový modul runtime na požadovanou platformu (například win-x64 pro 64bitovou verzi 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.
  • Snížené využití paměti: Nižší nároky na paměť v porovnání s tradičními aplikacemi .NET.
  • Bez závislosti 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

  • Omezená podpora architektury: Ne všechny funkce a knihovny .NET 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 verzi, 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í sady Visual Studio.

  1. V Průzkumníku řešení klikněte pravým tlačítkem na projekt a vyberte Upravit soubor projektu.

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

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

  4. V Průzkumníku řešení klikněte pravým tlačítkem myši na projekt a vyberte Publikovat.

  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 cílový modul runtime na požadovanou platformu (například win-x64 pro 64bitovou verzi 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 kompilace AOT (head-of-time), která zlepšuje výkon 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 bez úprav.
  • 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 verzi, 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. V Průzkumníku řešení klikněte pravým tlačítkem myši na projekt a vyberte Publikovat.
  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 cílový modul runtime na požadovanou platformu (například win-x64 pro 64bitovou verzi 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, aniž by vyžadovala samostatný soubor 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 sadou .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 explicitně povolit podporu kontejneru nastavením vlastnosti na EnableSdkContainerSupporttruehodnotu .

Spropitné

Další informace o nastaveních projektu souvisejících s kontejnery najdete v tématu Containerize a .NET app reference.

Výhody

  • Zjednodušená kontejnerizace: Pro základní scénáře není nutné zapisovat ani udržovat soubory Dockerfile.
  • Optimalizované základní image: Používá základní image 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 image: Image 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 verzi, 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. V Průzkumníku řešení klikněte pravým tlačítkem myši na projekt a vyberte Publikovat.
  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 Obecný registr) a vyberte Další.
  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í kontejneru najdete v tématu Přehled vytváření kontejnerů sady .NET SDK.

Viz také