Megosztás a következőn keresztül:


A .NET-alkalmazások közzétételi áttekintése

Ez a cikk a .NET-alkalmazások közzétételének különböző módjait ismerteti. Ismerteti a közzétételi módokat, a végrehajtható fájlok és a platformfüggetlen bináris fájlok létrehozását, valamint az egyes megközelítések üzembehelyezési és futtatókörnyezetekre gyakorolt hatását. A .NET-alkalmazásokat a .NET CLI vagy a Visual Studio használatával teheti közzé.

A közzétételről szóló rövid oktatóanyagért tekintse meg az oktatóanyagot: .NET-konzolalkalmazás közzététele a Visual Studio Code használatával.

A közzétételről szóló rövid oktatóanyagért lásd : .NET-konzolalkalmazás közzététele a Visual Studióval.

Mi a közzététel?

A .NET-alkalmazások közzététele azt jelenti, hogy forráskódot kell összeállítani egy végrehajtható vagy bináris fájl létrehozásához, valamint annak függőségeit és kapcsolódó fájljait a terjesztéshez. A közzététel után üzembe helyezi az alkalmazást egy kiszolgálón, terjesztési platformon, tárolóban vagy felhőkörnyezetben. A közzétételi folyamat előkészíti az alkalmazást az üzembe helyezésre és a fejlesztési környezeten kívüli használatra.

Közzétételi módok

Az alkalmazások közzétételének két elsődleges módja van. A döntést befolyásoló tényezők közé tartozik, hogy az üzembe helyezési környezet rendelkezik-e a megfelelő .NET-futtatókörnyezettel, és hogy szükség van-e olyan fordítási funkciókra, amelyekhez a futtatókörnyezetet az alkalmazással kell összekapcsolnia. A két közzétételi mód a következő:

  • Önálló közzététel
    Ez a mód létrehoz egy közzétételi mappát, amely egy platformspecifikus végrehajtható fájlt tartalmaz az alkalmazás elindításához, egy lefordított bináris fájlt, amely tartalmazza az alkalmazáskódot, az alkalmazás függőségeit és az alkalmazás futtatásához szükséges .NET-futtatókörnyezetet. Az alkalmazást futtató környezetnek nem kell előre telepítette a .NET-futtatókörnyezetet.

  • Keretrendszerfüggő közzététel
    Ez a mód létrehoz egy közzétételi mappát, amely tartalmaz egy választható platformspecifikus végrehajtható fájlt az alkalmazás elindításához, egy lefordított bináris fájlt, amely alkalmazáskódot tartalmaz, valamint az alkalmazás függőségeit. Az alkalmazást futtató környezetnek telepítve kell lennie annak a .NET-futtatókörnyezetnek, amelyet az alkalmazás használhat.

Fontos

A célplatformot futtatókörnyezet-azonosítóval (RID) adhatja meg. További információ a biztonsági azonosítókról: .NET RID-katalógus.

A közzététel alapjai

A <TargetFramework> projektfájl beállítása határozza meg az alkalmazás közzétételekor az alapértelmezett cél keretrendszert. A cél keretrendszert bármely érvényes Target Framework Monikerre (TFM) módosíthatja. Ha például a projekt egy .NET 9-et célba jelölő bináris fájlt használ <TargetFramework>net9.0</TargetFramework>.

Ha több keretrendszert szeretne megcélzni, a beállítást több TFM-értékre is beállíthatja <TargetFrameworks> pontosvesszővel elválasztva. Az alkalmazás létrehozásakor az alkalmazás a projekt által meghatározott cél-keretrendszerekhez lesz létrehozva. Az alkalmazás közzétételekor azonban meg kell adnia a cél keretrendszert:

Az alapértelmezett buildkonfigurációs mód a Kiadás, kivéve, ha a -c paraméter módosult.

dotnet publish -c Release -f net9.0

A parancs alapértelmezett kimeneti könyvtára a dotnet publish következő ./bin/<BUILD-CONFIGURATION>/<TFM>/publish/: . Közzéteheti például dotnet publish -c Release -f net9.0 a következőt ./bin/Release/net9.0/publish/: . Az összes buildkimenethez azonban választhat egy egyszerűsített kimeneti elérési utat és mappastruktúrát. További információ: Artifacts kimeneti elrendezés.

A Visual Studióban hozzon létre külön közzétételi profilokat az egyes cél-keretrendszerekhez.

Hordozható bináris fájlok

.NET-alkalmazás közzétételekor megcélzhat egy adott platformot, vagy létrehozhat egy hordozható bináris fájlt. A .NET alapértelmezés szerint még hordozható bináris fájlok létrehozásakor is közzétesz egy platformspecifikus végrehajtható fájlt ("apphost") a hordozható DLL mellett, hacsak nem tiltja le kifejezetten ezt a viselkedést.

A platformspecifikus végrehajtható fájl a UseAppHost tulajdonság miatt jön létre, amely alapértelmezés szerint a következő.true Ha csak a hordozható DLL-t szeretné közzétenni a platformspecifikus végrehajtható fájl nélkül, állítsa UseAppHostfalse be a parancssorban (-p:UseAppHost=false) vagy projekttulajdonságként.

Egy adott platform megcélzásának előnye, hogy képes kezelni az alkalmazás által igényelt natív függőségeket , biztosítva a célplatform egyedi követelményeivel való kompatibilitást.

Natív függőségek

Ha az alkalmazás natív függőségekkel rendelkezik, előfordulhat, hogy nem fut egy másik operációs rendszeren, ha hordozható bináris fájlként van közzétéve. A Windows API-tól függő alkalmazások például nem futnak natív módon macOS vagy Linux rendszeren. Platformspecifikus kódot kell megadnia, és minden platformhoz le kell állítania egy végrehajtható kódot.

Fontolja meg azt is, hogy ha egy hivatkozott kódtár platformspecifikus függőségeket biztosít, előfordulhat, hogy az alkalmazás nem minden platformon fut. Ha azonban egy adott platformot tesz közzé és céloz meg, a NuGet-csomagok platformspecifikus függőségei a közzétételi mappába lesznek másolva.

Annak érdekében, hogy az alkalmazás natív függőségekkel legyen közzétéve, tegye közzé egy adott platformon:

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

    Ez a kapcsoló kiadásra állítja a buildkonfigurációt, amely éles üzembe helyezésre van optimalizálva.

  • -r <RID>

    Ez a kapcsoló egy futtatókörnyezet-azonosítót (RID) használ a célplatform megadásához, és biztosítja a natív függőségek használatát (ha szükséges). A futtatókörnyezet-azonosítók listájáért tekintse meg a futtatókörnyezet-azonosítókat (RID) tartalmazó katalógust.

  1. Kattintson a jobb gombbal a projektre a Megoldáskezelőben , és válassza a Közzététel lehetőséget.
  2. Ha ez az első közzétételi alkalom, válassza a Mappa lehetőséget közzétételi célként, és válassza a Tovább gombot.
  3. Válasszon egy mappahelyet, vagy fogadja el az alapértelmezett beállítást, majd válassza a Befejezés lehetőséget.
  4. A közzétételi profilban válassza az Összes beállítás megjelenítése lehetőséget.
  5. Állítsa a Cél futtatókörnyezetet a kívánt platformra (például win-x64 for 64 bites Windows).
  6. Válassza a Mentés , majd a Közzététel lehetőséget.

A futtatókörnyezet-azonosítók listájáért tekintse meg a futtatókörnyezet-azonosítókat (RID) tartalmazó katalógust.

Gyorsreferencia

Az alábbi táblázat gyors példákat tartalmaz az alkalmazás közzétételére.

Közzétételi mód Parancs
Keretrendszerfüggő üzembe helyezés dotnet publish -c Release [-r <RID>]
Keretrendszerfüggő üzembe helyezés (DLL) dotnet publish -c Release -p:UseAppHost=false
Önálló üzembe helyezés dotnet publish -c Release [-r <RID>] --self-contained true
Egyfájlos üzembe helyezés dotnet publish -c Release [-r <RID>] -p:PublishSingleFile=true
Natív AOT-üzembe helyezés dotnet publish -c Release [-r <RID>] -p:PublishAot=true
ReadyToRun üzembe helyezése dotnet publish -c Release [-r <RID>] -p:PublishReadyToRun=true
Tároló üzembe helyezése dotnet publish -c Release [-r <RID>] -t:PublishContainer

Keretrendszerfüggő üzembe helyezés

A parancssori felületről vagy a Visual Studióból való közzétételkor a keretrendszerfüggő üzembe helyezés az alapértelmezett mód. Ebben a módban létrejön egy platformspecifikus végrehajtható fájl, amely az alkalmazás elindításához használható. A platform-specifikus futtatható fájl neve valami hasonló, mint myapp.exe a Windows esetében vagy csak myapp más platformok esetében.

Az alkalmazás a .NET egy adott verziójára van konfigurálva. A célzott .NET-futtatókörnyezetnek azon a környezetben kell lennie, ahol az alkalmazás fut. Ha például az alkalmazás a .NET 9-et célozza meg, minden olyan környezetben, amelyen az alkalmazás fut, telepítve kell lennie a .NET 9 futtatókörnyezetnek.

A keretrendszerfüggő üzemelő példány közzététele olyan alkalmazást hoz létre, amely automatikusan átgörget az alkalmazást futtató környezetben elérhető legújabb .NET biztonsági javításra. A fordítási időpontban történő verziókötésről további információt a használandó .NET-verzió kiválasztása című témakörben talál.

Előnye

  • Kis üzembe helyezés: Csak az alkalmazás és a függőségei vannak elosztva. Az alkalmazást futtató környezetnek már telepítve kell lennie a .NET-futtatókörnyezettel.
  • Platformfüggetlen: Az alkalmazás és bármely . A NET-alapú kódtár más operációs rendszereken fut.
  • A legújabb javított futtatókörnyezetet használja: Az alkalmazás a környezetben telepített legújabb futtatókörnyezetet használja.

Hátrányai

  • A futtatókörnyezet előzetes telepítését igényli: Az alkalmazás csak akkor futtatható, ha a .NET által célként megadott verzió már telepítve van a környezetben.
  • A .NET változhat: A környezet, ahol az alkalmazás fut, egy újabb .NET-futtatókörnyezetet használhat, amely megváltoztathatja az alkalmazás viselkedését.

Keretrendszerfüggő alkalmazások indítása

A keretrendszerfüggő alkalmazások futtatásának két módja van: a platformspecifikus végrehajtható fájlon ("apphost") keresztül és a dotnet myapp.dll használatával. Az apphost végrehajtható fájlját a hívás dotnet myapp.dll helyett közvetlenül is futtathatja, ami továbbra is elfogadható módszer az alkalmazás futtatására. Amikor csak lehetséges, ajánlott az apphost használata. Az apphost használatának számos előnye van:

  • A végrehajtható fájlok úgy jelennek meg, mint a standard natív platform futtatható fájljai.
  • A végrehajtható nevek megmaradnak a folyamatnevekben, ami azt jelenti, hogy az alkalmazások könnyen felismerhetők a nevük alapján.
  • Mivel az apphost natív bináris, natív eszközök, például jegyzékek csatolhatók hozzájuk.
  • Az Apphost alapértelmezés szerint alacsony szintű biztonsági kockázatcsökkentéseket alkalmaz, így biztonságosabbá válik. A Control-Flow Enforcement Technology (CET) árnyékverem például alapértelmezés szerint engedélyezve van a .NET 9-től kezdve. Az alkalmazott dotnet kockázatcsökkentések az összes támogatott futtatókörnyezet legalacsonyabb közös nevezője.

Közzétesz

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

    Ez a kapcsoló kiadásra állítja a buildkonfigurációt, amely éles üzembe helyezésre van optimalizálva.

  • -r <RID>

    Ez a kapcsoló egy futtatókörnyezet-azonosítót (RID) használ a célplatform megadásához, és biztosítja a natív függőségek használatát (ha szükséges). A futtatókörnyezet-azonosítók listájáért tekintse meg a futtatókörnyezet-azonosítókat (RID) tartalmazó katalógust.

Vagy kifejezetten:

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

    Ez a kapcsoló kifejezetten arra utasítja a .NET SDK-t, hogy hozzon létre egy keretrendszertől függő üzembe helyezést.

  1. Kattintson a jobb gombbal a projektre a Megoldáskezelőben , és válassza a Közzététel lehetőséget.
  2. Ha ez az első közzétételi alkalom, válassza a Mappa lehetőséget közzétételi célként, és válassza a Tovább gombot.
  3. Válasszon egy mappahelyet, vagy fogadja el az alapértelmezett beállítást, majd válassza a Befejezés lehetőséget.
  4. A közzétételi profilban válassza az Összes beállítás megjelenítése lehetőséget.
  5. Az üzembehelyezési mód beállítása keretrendszerfüggőre (ez az alapértelmezett beállítás).
  6. Állítsa a Cél futtatókörnyezetet a kívánt platformra (például win-x64 for 64 bites Windows).
  7. Válassza a Mentés , majd a Közzététel lehetőséget.

A .NET telepítési keresési viselkedésének konfigurálása

Alapértelmezés szerint az apphost egy globálisan telepített .NET-futtatókörnyezetet fedez fel és használ, a telepítési helyek platformonként eltérőek. A futtatókörnyezet felderítéséről és a telepítési helyekről további információt az alkalmazásindítási hibák elhárítása című témakörben talál.

A .NET futtatókörnyezet elérési útja végrehajtásonként is testre szabható. A DOTNET_ROOT környezeti változó felhasználható az egyéni hely megadására. További információ az összes DOTNET_ROOT konfigurációs beállításról: .NET környezeti változók.

Általában az ajánlott eljárás a DOTNET_ROOT használatára a következő:

  1. Először törölje DOTNET_ROOT a környezeti változókat, vagyis a szöveggel DOTNET_ROOTkezdődő összes környezeti változót.
  2. Állítsa be DOTNET_ROOTés csak DOTNET_ROOTa cél elérési útját.
  3. Hajtsa végre a célalkalmazás-állomást.

A .NET 9-ben és újabb verzióiban konfigurálhatja a közzétett végrehajtható fájl .NET-telepítési keresési útvonalait a AppHostDotNetSearch tulajdonságokon AppHostRelativeDotNet keresztül.

AppHostDotNetSearch lehetővé teszi egy vagy több hely megadását, ahol a végrehajtható fájl .NET-telepítést keres:

  • AppLocal: az alkalmazás végrehajtható mappája
  • AppRelative: a végrehajtható alkalmazás elérési útja
  • EnvironmentVariable: környezeti DOTNET_ROOT[_<arch>] változók értéke
  • Global: regisztrált és alapértelmezett globális telepítési helyek

AppHostRelativeDotNet a futtathatóhoz viszonyított elérési utat adja meg, amely akkor lesz keresve, ha AppHostDotNetSearch tartalmazza a fájlt AppRelative.

További információkért tekintse meg AppHostDotNetSearchAppHostRelativeDotNetaz apphost helybeállításainak megtekintését és telepítését.

Platformfüggetlen DLL üzembe helyezése

Másik lehetőségként platformspecifikus végrehajtható fájl nélkül is közzéteheti az alkalmazást platformfüggetlen DLL-ként. Ebben a módban a rendszer létrehoz egy myapp.dll fájlt a közzétételi kimeneti mappában. Az alkalmazás futtatásához keresse meg a kimeneti mappát, és használja a dotnet myapp.dll parancsot.

Közzététel platformfüggetlen DLL-ként:

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

    Ez a kapcsoló kiadásra állítja a buildkonfigurációt, amely éles üzembe helyezésre van optimalizálva.

  • -p:UseAppHost=false

    Ez a tulajdonság letiltja egy platformspecifikus végrehajtható fájl létrehozását, amely csak a hordozható DLL-t készíti el.

  1. Kattintson a jobb gombbal a projektre a Megoldáskezelőben , és válassza a Közzététel lehetőséget.
  2. Ha ez az első közzétételi alkalom, válassza a Mappa lehetőséget közzétételi célként, és válassza a Tovább gombot.
  3. Válasszon egy mappahelyet, vagy fogadja el az alapértelmezett beállítást, majd válassza a Befejezés lehetőséget.
  4. A közzétételi profilban válassza az Összes beállítás megjelenítése lehetőséget.
  5. Az üzembehelyezési mód beállítása keretrendszerfüggőre.
  6. Törölje az egyetlen fájl létrehozása jelölőnégyzet jelölését.
  7. Állítsa a cél futtatókörnyezetethordozhatóra (vagy hagyja üresen).
  8. Válassza a Mentés , majd a Közzététel lehetőséget.

Önálló üzembe helyezés

Önálló üzembe helyezés (SCD) közzétételekor a közzétételi folyamat létrehoz egy platformspecifikus végrehajtható fájlt. Az SCD közzététele tartalmazza az alkalmazás futtatásához szükséges összes .NET-fájlt, de nem tartalmazza a .NET natív függőségeit. Ezeknek a függőségeknek az alkalmazás futtatása előtt jelen kell lenniük a környezetben.

Az SCD közzététele olyan alkalmazást hoz létre, amely nem lép előre a legújabb elérhető .NET biztonsági javításra. A fordítási időpontban történő verziókötésről további információt a használandó .NET-verzió kiválasztása című témakörben talál.

Előnye

  • .NET-verzió szabályozása: Annak szabályozása, hogy a .NET melyik verziója legyen üzembe helyezve az alkalmazással.
  • Platformspecifikus célzás: Mivel az alkalmazást minden platformon közzé kell tenni, egyértelmű, hogy hol fut az alkalmazás.

Hátrányai

  • Nagyobb üzemelő példányok: Mivel az alkalmazás tartalmazza a .NET-futtatókörnyezetet és az összes függőséget, a szükséges letöltési méret és merevlemez-terület nagyobb, mint egy keretrendszertől függő üzembe helyezés.
  • Nehezebb frissíteni a .NET-verziót: A .NET-futtatókörnyezet csak az alkalmazás új verziójának kiadásával frissíthető.

Borravaló

A kompatibilis önálló alkalmazások teljes méretét csökkentheti a levágott közzétételsel vagy a globalizáció invariáns módjának engedélyezésével. A globalizáció invariáns módjáról további információt a .NET Globalization Invariant Mode című témakörben talál.

Közzétesz

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

    Ez a kapcsoló kiadásra állítja a buildkonfigurációt, amely éles üzembe helyezésre van optimalizálva.

  • -r <RID>

    Ez a kapcsoló egy futtatókörnyezet-azonosítót (RID) használ a célplatform megadásához, és biztosítja a natív függőségek használatát (ha szükséges). A futtatókörnyezet-azonosítók listájáért tekintse meg a futtatókörnyezet-azonosítókat (RID) tartalmazó katalógust.

  • --self-contained true

    Ez a kapcsoló arra utasítja a .NET SDK-t, hogy hozzon létre egy végrehajtható fájlt önálló üzembe helyezésként (SCD).

  1. Kattintson a jobb gombbal a projektre a Megoldáskezelőben , és válassza a Közzététel lehetőséget.
  2. Ha ez az első közzétételi alkalom, válassza a Mappa lehetőséget közzétételi célként, és válassza a Tovább gombot.
  3. Válasszon egy mappahelyet, vagy fogadja el az alapértelmezett beállítást, majd válassza a Befejezés lehetőséget.
  4. A közzétételi profilban válassza az Összes beállítás megjelenítése lehetőséget.
  5. Állítsa be az üzembe helyezési módotönállóra.
  6. Állítsa a Cél futtatókörnyezetet a kívánt platformra (például win-x64 for 64 bites Windows).
  7. Válassza a Mentés , majd a Közzététel lehetőséget.

Egyfájlos üzembe helyezés

Ha az alkalmazást egy fájlból álló üzembe helyezésként teszi közzé, az alkalmazásfüggő fájlok egyetlen bináris fájlba vannak csomagolva. Ez az üzembehelyezési modell keretrendszerfüggő és önálló alkalmazásokhoz is elérhető, így vonzó lehetőséget kínál az alkalmazás egyetlen fájlként való üzembe helyezéséhez és terjesztéséhez.

Az egyfájlos alkalmazások mindig operációs rendszer- és architektúraspecifikusak. Minden konfigurációhoz közzé kell tennie, például Linux x64, Linux Arm64, Windows x64 stb.

Előnye

  • Egyszerűsített terjesztés: Az alkalmazás üzembe helyezése és terjesztése egyetlen végrehajtható fájlként.
  • Csökkentett fájl zsúfoltság: Minden függőség kötegelve van, így nincs szükség több fájl kezelésére.
  • Egyszerű üzembe helyezés: Egyetlen fájl másolása az alkalmazás üzembe helyezéséhez.

Hátrányai

  • Nagyobb fájlméret: Az egyetlen fájl tartalmazza az összes függőséget, így nagyobb, mint az egyes fájlok.
  • Lassabb indítás: A fájlokat futásidőben kell kinyerni, ami befolyásolhatja az indítási teljesítményt.
  • Platformspecifikus: Minden célplatformhoz külön fájlokat kell közzétennie.

Az egyfájlos üzembe helyezés kombinálható más optimalizálásokkal, például a vágással és a ReadyToRun fordítással a további optimalizálás érdekében.

Az egyfájlos telepítéssel kapcsolatos további információkért lásd az egyfájlos üzembe helyezést ismertető témakört.

Közzétesz

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

    Ez a kapcsoló kiadásra állítja a buildkonfigurációt, amely éles üzembe helyezésre van optimalizálva.

  • -r <RID>

    Ez a kapcsoló egy futtatókörnyezet-azonosítót (RID) használ a célplatform megadásához, és biztosítja a natív függőségek használatát (ha szükséges). A futtatókörnyezet-azonosítók listájáért tekintse meg a futtatókörnyezet-azonosítókat (RID) tartalmazó katalógust.

  • -p:PublishSingleFile=true

    Ez a tulajdonság az összes alkalmazásfüggő fájlt egyetlen bináris fájlba köti össze.

  1. Kattintson a jobb gombbal a projektre a Megoldáskezelőben , és válassza a Közzététel lehetőséget.
  2. Ha ez az első közzétételi alkalom, válassza a Mappa lehetőséget közzétételi célként, és válassza a Tovább gombot.
  3. Válasszon egy mappahelyet, vagy fogadja el az alapértelmezett beállítást, majd válassza a Befejezés lehetőséget.
  4. A közzétételi profilban válassza az Összes beállítás megjelenítése lehetőséget.
  5. Az üzembehelyezési mód beállítása önálló vagy keretrendszerfüggőre.
  6. Állítsa a Cél futtatókörnyezetet a kívánt platformra (például win-x64 for 64 bites Windows).
  7. Ellenőrizze az Egyetlen fájl létrehozása jelölőnégyzetet.
  8. Válassza a Mentés , majd a Közzététel lehetőséget.

Natív AOT-üzembe helyezés

A natív AOT-üzembe helyezés közvetlenül natív kódra fordítja az alkalmazást, így nincs szükség futtatókörnyezetre. Ez a közzétételi lehetőség önálló üzembe helyezési módot használ, mivel a lefordított natív kódnak tartalmaznia kell az alkalmazás futtatásához szükséges összes elemet. Ez gyorsabb indítási időket és csökkentett memóriahasználatot eredményez, de bizonyos korlátozásokat tartalmaz a támogatott funkciókra vonatkozóan.

Előnye

  • Gyors indítás: Futásidőben nincs szükség JIT-fordításra, ami gyorsabb alkalmazásindítást eredményez.
  • Csökkentett memóriahasználat: Alacsonyabb memóriaigény a hagyományos .NET-alkalmazásokhoz képest.
  • Nincs futásidejű függőség: Az alkalmazás a .NET-futtatókörnyezet telepítésének megkövetelése nélkül fut.
  • Kisebb üzembe helyezési méret: Gyakran kisebb, mint a teljes futtatókörnyezettel rendelkező önálló üzembe helyezés .

Hátrányai

  • Korlátozott keretrendszer-támogatás: Nem minden .NET-funkció és kódtár kompatibilis a natív AOT-jal.
  • Hosszabb buildelési idő: A natív kódra történő fordítás hosszabb időt vesz igénybe, mint a hagyományos buildek.
  • Platformspecifikus: Minden célplatformhoz és architektúrához külön kell lefordítani.
  • Hibakeresési korlátozások: Összetettebb hibakeresési élmény a normál .NET-alkalmazásokhoz képest.

A natív AOT-telepítéssel kapcsolatos további információkért lásd: Natív AOT-telepítés.

Közzétesz

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

    Ez a kapcsoló kiadásra állítja a buildkonfigurációt, amely éles üzembe helyezésre van optimalizálva.

  • -r <RID>

    Ez a kapcsoló egy futtatókörnyezet-azonosítót (RID) használ a célplatform megadásához, és biztosítja a natív függőségek használatát (ha szükséges). A futtatókörnyezet-azonosítók listájáért tekintse meg a futtatókörnyezet-azonosítókat (RID) tartalmazó katalógust.

  • -p:PublishAot=true

    Ez a tulajdonság lehetővé teszi a natív AOT-fordítást, amely közvetlenül natív kódra fordítja az alkalmazást.

A natív AOT-közzétételt konfigurálni kell a projektfájlban. A Visual Studio közzétételi felhasználói felületén keresztül nem engedélyezheti.

  1. A Megoldáskezelőben kattintson a jobb gombbal a projektre, és válassza a Projektfájl szerkesztése lehetőséget.

  2. Adja hozzá a következő tulajdonságot a következőhöz <PropertyGroup>:

    <PublishAot>true</PublishAot>
    
  3. Mentse a projektfájlt.

  4. Kattintson a jobb gombbal a projektre a Megoldáskezelőben , és válassza a Közzététel lehetőséget.

  5. Ha ez az első közzétételi alkalom, válassza a Mappa lehetőséget közzétételi célként, és válassza a Tovább gombot.

  6. Válasszon egy mappahelyet, vagy fogadja el az alapértelmezett beállítást, majd válassza a Befejezés lehetőséget.

  7. A közzétételi profilban válassza az Összes beállítás megjelenítése lehetőséget.

  8. Állítsa be az üzembe helyezési módotönállóra.

  9. Állítsa a Cél futtatókörnyezetet a kívánt platformra (például win-x64 for 64 bites Windows).

  10. Válassza a Mentés , majd a Közzététel lehetőséget.

A natív AOT-telepítéssel kapcsolatos további információkért lásd: Natív AOT-telepítés.

ReadyToRun üzembe helyezése

Amikor a ReadyToRun fordítással teszi közzé az alkalmazást, az alkalmazásszerelvények ReadyToRun (R2R) formátumban lesznek lefordítva. Az R2R az idő előtti fordítás (AOT) egyik formája, amely javítja az indítási teljesítményt azáltal, hogy csökkenti az alkalmazás betöltésekor az igény szerinti (JIT) fordítónak szükséges munkát. Ez a közzétételi lehetőség keretrendszerfüggő és önálló üzembe helyezési módokkal is használható.

A ReadyToRun bináris fájljai köztes nyelv (IL) kódot és ugyanazon kód natív verzióját is tartalmazzák. Bár az R2R bináris fájlok nagyobbak, mint a hagyományos szerelvények, jobb indítási teljesítményt nyújtanak.

Előnye

  • Továbbfejlesztett indítási idő: Az alkalmazás kevesebb időt tölt a JIT-fordító futtatásával az indítás során.
  • Jobb első használatú teljesítmény: Csökkentett késés a kódelérési útvonalak első alkalommal történő végrehajtásához.
  • Kompatibilis a meglévő kóddal: A legtöbb .NET-kódtárral és keretrendszerrel módosítás nélkül működik.
  • Rugalmas üzembe helyezés: A keretrendszertől függő ésaz önálló üzembe helyezési módokkal is kombinálható.

Hátrányai

  • Nagyobb méret: Az alkalmazás nagyobb a lemezen az IL és a natív kód miatt.
  • Hosszabb létrehozási idő: A fordítás több időt vesz igénybe, mint a szokásos közzététel.
  • Platformspecifikus optimalizálás: A legjobb teljesítménynövekedéshez meghatározott platformokra van szükség.

Közzétesz

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

    Ez a kapcsoló kiadásra állítja a buildkonfigurációt, amely éles üzembe helyezésre van optimalizálva.

  • -r <RID>

    Ez a kapcsoló egy futtatókörnyezet-azonosítót (RID) használ a célplatform megadásához, és biztosítja a natív függőségek használatát (ha szükséges). A futtatókörnyezet-azonosítók listájáért tekintse meg a futtatókörnyezet-azonosítókat (RID) tartalmazó katalógust.

  • -p:PublishReadyToRun=true

    Ez a tulajdonság lehetővé teszi a ReadyToRun fordítását, amely javítja az indítási teljesítményt a szerelvények előfordításával.

  1. Kattintson a jobb gombbal a projektre a Megoldáskezelőben , és válassza a Közzététel lehetőséget.
  2. Ha ez az első közzétételi alkalom, válassza a Mappa lehetőséget közzétételi célként, és válassza a Tovább gombot.
  3. Válasszon egy mappahelyet, vagy fogadja el az alapértelmezett beállítást, majd válassza a Befejezés lehetőséget.
  4. A közzétételi profilban válassza az Összes beállítás megjelenítése lehetőséget.
  5. Az üzembehelyezési mód beállítása önálló vagy keretrendszerfüggőre.
  6. Állítsa a Cél futtatókörnyezetet a kívánt platformra (például win-x64 for 64 bites Windows).
  7. Ellenőrizze a ReadyToRun-fordítás engedélyezése jelölőnégyzetet.
  8. Válassza a Mentés , majd a Közzététel lehetőséget.

A ReadyToRun üzembe helyezésével kapcsolatos további információkért tekintse meg a ReadyToRun fordítását.

Tároló üzembe helyezése

Amikor tárolóként teszi közzé az alkalmazást, a .NET SDK külön Dockerfile nélkül csomagolja be az alkalmazást és annak függőségeit egy tárolórendszerképbe. Ez az üzembe helyezési mód létrehoz egy teljes tárolórendszerképet, amely bármilyen tároló-futtatókörnyezetben futtatható, például Docker vagy Podman. A tároló üzembe helyezése leegyszerűsíti a tárolókészítési folyamatot azáltal, hogy szükségtelenné teszi a Dockerfile-fájlok írását és karbantartását, miközben optimalizált alaprendszerképeket biztosít.

A .NET SDK 8.0.200-tól kezdve a tárolótámogatás alapértelmezés szerint elérhető, és nem igényel további NuGet-csomagokat. Konzolalkalmazások esetében előfordulhat, hogy explicit módon kell engedélyeznie a tároló támogatását a EnableSdkContainerSupport tulajdonság truebeállításával.

Borravaló

A tárolókkal kapcsolatos projektbeállításokról további információt a .NET-alkalmazáshivatkozások tárolóba helyezése című témakörben talál.

Előnye

  • Egyszerűsített tárolóba helyezés: Nincs szükség Dockerfile-fájlok írására vagy karbantartására az alapszintű forgatókönyvekhez.
  • Optimalizált alaprendszerképek: A Microsoft által biztosított, optimalizált alaprendszerképeket használja a legújabb biztonsági frissítésekkel.
  • Konzisztens környezet: Konzisztens futtatókörnyezetet biztosít a fejlesztés, a tesztelés és az éles környezet között.
  • Egyszerű terjesztés: A tárolólemezképek könnyen megoszthatók és üzembe helyezhetők különböző környezetekben.
  • Platformelkülönítés: Az alkalmazások izolált tárolókban futnak, csökkentve az alkalmazások közötti ütközéseket.

Hátrányai

  • Tároló futásidejű függősége: A célkörnyezetben telepítve kell lennie egy tároló-futtatókörnyezetnek.
  • Képméret: A tárolólemezképek általában nagyobbak, mint a többi üzembe helyezési módszer.
  • Tanulási görbe: A tárolófogalmak és az eszközhasználat megértését igényli.
  • Korlátozott testreszabás: Kevesebb rugalmasság az egyéni Docker-fájlokhoz képest összetett forgatókönyvek esetén.

Közzétesz

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

    Ez a kapcsoló kiadásra állítja a buildkonfigurációt, amely éles üzembe helyezésre van optimalizálva.

  • -r <RID>

    Ez a kapcsoló egy futtatókörnyezet-azonosítót (RID) használ a célplatform megadásához, és biztosítja a natív függőségek használatát (ha szükséges). A futtatókörnyezet-azonosítók listájáért tekintse meg a futtatókörnyezet-azonosítókat (RID) tartalmazó katalógust.

  • -t:PublishContainer

    Ez a cél az alkalmazást tárolólemezképként teszi közzé.

A közzétételi profil megközelítését is használhatja:

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

    Ez a profil elindítja a tároló közzétételi folyamatát.

  1. Kattintson a jobb gombbal a projektre a Megoldáskezelőben , és válassza a Közzététel lehetőséget.
  2. Válassza a Tárolóregisztrációs adatbázist közzétételi célként, és válassza a Tovább lehetőséget.
  3. Válassza ki a céltároló-beállításjegyzéket (például az Azure Container Registryt, a Docker Hubot vagy az Általános beállításjegyzéket), és válassza a Tovább gombot.
  4. Konfigurálja a beállításjegyzék kapcsolati adatait és hitelesítését.
  5. A közzétételi profilban válassza az Összes beállítás megjelenítése lehetőséget.
  6. Állítsa be az üzembe helyezési módotönálló vagy keretrendszerfüggőre az igényeinek megfelelően.
  7. Állítsa be a cél futtatókörnyezetet a kívánt platformra (például Linux-x64 linuxos tárolókhoz).
  8. Konfiguráljon tárolóspecifikus beállításokat, például képnevet és címkéket.
  9. Válassza a Mentés , majd a Közzététel lehetőséget.

A tároló üzembe helyezésével kapcsolatos további információkért tekintse meg a .NET SDK tárolólétrehozásának áttekintését.

Lásd még: