Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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. .NET alkalmazásokat a .NET parancssori felület vagy Visual Studio használatával tehet közzé.
A közzétételről szóló rövid oktatóanyagért lásd: Tutorial: .NET konzolalkalmazás közzététele.
A közzétételről szóló rövid oktatóanyagért lásd: Tutorial: .NET konzolalkalmazás közzététele.
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, a függőségeivel és a kapcsolódó fájlokkal együtt, 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, amelyek a futtatókörnyezetet az alkalmazással való összekapcsolást igénylik. 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ítve .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 az alkalmazás által használható .NET futtatókörnyezet egy verziójával.
Fontos
A célplatformot futtatókörnyezet-azonosítóval (RID) adhatja meg. A RID-kkel kapcsolatos további információkért lásd: .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. Például, ha a projekt <TargetFramework>net9.0</TargetFramework> használ, akkor létrejön egy bináris, amely a .NET 9-et célozza meg.
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 dotnet publish parancs alapértelmezett kimeneti könyvtára a ./bin/<BUILD-CONFIGURATION>/<TFM>/publish/. Például a dotnet publish -c Release -f net9.0 közzétesz a ./bin/Release/net9.0/publish/ oldalra. 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 Studio-ban hozzon létre külön közzétételi profilokat az egyes cél-keretrendszerekhez.
Hordozható bináris fájlok
Egy .NET-alkalmazás közzétételekor megcélzhat egy adott platformot, vagy létrehozhat egy hordozható bináris fájlt. Alapértelmezés szerint még hordozható bináris fájlok létrehozásakor is .NET a hordozható DLL mellett egy platformspecifikus végrehajtható fájlt ("apphost") tesz közzé, kivéve, ha kifejezetten letiltja 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. Az 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 ReleaseEz a kapcsoló a buildkonfigurációt "Release" módba állítja, amely az éles üzemelteté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.
- Kattintson a jobb gombbal a projektre a Solution Explorer és válassza a Publish lehetőséget.
- 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.
- Válasszon egy mappahelyet, vagy fogadja el az alapértelmezett beállítást, majd válassza a Befejezés lehetőséget.
- A közzétételi profilban válassza az Összes beállítás megjelenítése lehetőséget.
- Állítsa Target Runtime a kívánt platformra (például win-x64 64 bites Windows).
- 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 keretrendszertől függő üzembe helyezés az alapértelmezett mód, amikor a közzétételt a CLI-ről vagy a Visual Studio-ból végzi. 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 végrehajtható fájl neve valamihez hasonló, mint a myapp.exe Windows rendszeren, vagy csak myapp más platformokon.
Az alkalmazás úgy van konfigurálva, hogy a .NET egy adott verzióját célozza meg. 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 9-es .NET célozza meg, minden olyan környezetben, amelyen az alkalmazás fut, telepítve kell lennie a .NET 9 futtatókörnyezetnek.
A keretrendszertől függő üzembe helyezés közzététele olyan alkalmazást hoz létre, amely automatikusan a legújabb .NET biztonsági javításra lép, amely az alkalmazást futtató környezetben érhető el. A fordítási időpontban a verziókötéssel kapcsolatos további információkért lásd: A használni kívánt .NET verzió kijelölése.
Előnyök
- 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.
- Cross-platform: Az alkalmazás és az .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
- Requires előtelepíti a futtatókörnyezetet: Az alkalmazás csak akkor futtatható, ha a célként megadott .NET verziója már telepítve van a környezetben.
- .NET megváltozhat: Az alkalmazás futtatásához használt környezet 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
dotnetkocká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 ReleaseEz a kapcsoló a buildkonfigurációt "Release" módba állítja, amely az éles üzemelteté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 falseEz a kapcsoló kifejezetten arra utasítja a .NET SDK-t, hogy hozzon létre egy keretrendszertől függő üzembe helyezést.
- Kattintson a jobb gombbal a projektre a Solution Explorer és válassza a Publish lehetőséget.
- 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.
- Válasszon egy mappahelyet, vagy fogadja el az alapértelmezett beállítást, majd válassza a Befejezés lehetőséget.
- A közzétételi profilban válassza az Összes beállítás megjelenítése lehetőséget.
- Az üzembehelyezési mód beállítása keretrendszerfüggőre (ez az alapértelmezett beállítás).
- Állítsa Target Runtime a kívánt platformra (például win-x64 64 bites Windows).
- Válassza a Mentés , majd a Közzététel lehetőséget.
.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, platformonként eltérő telepítési helyekkel. 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. Az összes DOTNET_ROOT konfigurációs beállításról további információt a .NET környezeti változók című témakörben talál.
Általában az ajánlott eljárás a DOTNET_ROOT használatára a következő:
- Először törölje
DOTNET_ROOTa környezeti változókat, vagyis a szöveggelDOTNET_ROOTkezdődő összes környezeti változót. - Állítsa be
DOTNET_ROOTés csakDOTNET_ROOTa cél elérési útját. - Hajtsa végre a célalkalmazás-állomást.
A .NET 9- és újabb verziókban konfigurálhatja a közzétett végrehajtható fájl .NET telepítési keresési útvonalait a AppHostDotNetSearch és AppHostRelativeDotNet tulajdonságokon keresztül.
AppHostDotNetSearch lehetővé teszi egy vagy több hely megadását, ahol a végrehajtható fájl egy .NET telepítést keres:
-
AppLocal: az alkalmazás futtatható fájljainak mappája -
AppRelative: a végrehajtható alkalmazás elérési útja -
EnvironmentVariable: környezetiDOTNET_ROOT[_<arch>]változók értéke -
Global: regisztrált és alapértelmezett globális telepítési helyek
AppHostRelativeDotNet a futtatható állományhoz viszonyított elérési utat adja meg, amely akkor kerül keresésre, ha AppHostDotNetSearch tartalmazza 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 ReleaseEz a kapcsoló a buildkonfigurációt "Release" módba állítja, amely az éles üzemeltetésre van optimalizálva.
-p:UseAppHost=falseEz a tulajdonság letiltja egy platformspecifikus végrehajtható fájl létrehozását, amely csak a hordozható DLL-t készíti el.
- Kattintson a jobb gombbal a projektre a Solution Explorer és válassza a Publish lehetőséget.
- 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.
- Válasszon egy mappahelyet, vagy fogadja el az alapértelmezett beállítást, majd válassza a Befejezés lehetőséget.
- A közzétételi profilban válassza az Összes beállítás megjelenítése lehetőséget.
- Az üzembehelyezési mód beállítása keretrendszerfüggőre.
- Törölje az egyetlen fájl létrehozása jelölőnégyzet jelölését.
- Állítsa a cél futtatókörnyezetethordozhatóra (vagy hagyja üresen).
- 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 magában foglalja az alkalmazás futtatásához szükséges összes szükséges .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 a verziókötéssel kapcsolatos további információkért lásd: A használni kívánt .NET verzió kijelölése.
Előnyök
- Szabályozza a .NET verziót: Határozza meg, hogy az alkalmazással melyik .NET verzió legyen telepítve.
- 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
- Komplexebb telepítések: 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 keretrendszer-függő telepítés.
- A .NET verzió nehezebben frissíthető: A .NET Runtime 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. További információ a globalizáció invariáns módjáról: .NET Globalization Invariant Mode.
Közzétesz
dotnet publish -c Release -r <RID> --self-contained true
-c ReleaseEz a kapcsoló a buildkonfigurációt "Release" módba állítja, amely az éles üzemelteté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 trueEz 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).
- Kattintson a jobb gombbal a projektre a Solution Explorer és válassza a Publish lehetőséget.
- 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.
- Válasszon egy mappahelyet, vagy fogadja el az alapértelmezett beállítást, majd válassza a Befejezés lehetőséget.
- A közzétételi profilban válassza az Összes beállítás megjelenítése lehetőséget.
- Állítsa be az üzembe helyezési módotönállóra.
- Állítsa Target Runtime a kívánt platformra (például win-x64 64 bites Windows).
- 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őnyök
- 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 ReleaseEz a kapcsoló a buildkonfigurációt "Release" módba állítja, amely az éles üzemelteté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=trueEz a tulajdonság az összes alkalmazásfüggő fájlt egyetlen bináris fájlba köti össze.
- Kattintson a jobb gombbal a projektre a Solution Explorer és válassza a Publish lehetőséget.
- 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.
- Válasszon egy mappahelyet, vagy fogadja el az alapértelmezett beállítást, majd válassza a Befejezés lehetőséget.
- A közzétételi profilban válassza az Összes beállítás megjelenítése lehetőséget.
- Az üzembehelyezési mód beállítása önálló vagy keretrendszerfüggőre.
- Állítsa Target Runtime a kívánt platformra (például win-x64 64 bites Windows).
- Ellenőrizze az Egyetlen fájl létrehozása jelölőnégyzetet.
- 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őnyök
- 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.
- Nem kell futtatókörnyezeti függőség: Az alkalmazás .NET futtatókörnyezet telepítése nélkül fut.
- Kisebb üzembe helyezési méret: Gyakran kisebb, mint az önálló telepítés, amely a teljes futtatókörnyezetet tartalmazza.
Hátrányai
- Limited keretrendszer támogatása: Nem minden .NET funkció és kódtár kompatibilis a Native AOT-nak.
- 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.
- Debugging korlátozások: Összetettebb hibakeresési élmény a hagyományos .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 ReleaseEz a kapcsoló a buildkonfigurációt "Release" módba állítja, amely az éles üzemelteté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=trueEz 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étel konfigurálása a projektfájlban szükséges. Nem engedélyezheti a Visual Studio közzétételi felhasználói felületen keresztül.
A Solution Explorer kattintson a jobb gombbal a projektre, és válassza a Szerkesztési projektfájl lehetőséget.
Adja hozzá a következő tulajdonságot a következőhöz
<PropertyGroup>:<PublishAot>true</PublishAot>Mentse a projektfájlt.
Kattintson a jobb gombbal a projektre a Solution Explorer és válassza a Publish lehetőséget.
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.
Válasszon egy mappahelyet, vagy fogadja el az alapértelmezett beállítást, majd válassza a Befejezés lehetőséget.
A közzétételi profilban válassza az Összes beállítás megjelenítése lehetőséget.
Állítsa be az üzembe helyezési módotönállóra.
Állítsa Target Runtime a kívánt platformra (például win-x64 64 bites Windows).
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 egy előzetes fordítás (AOT) formája, amely növeli az indítási teljesítményt azáltal, hogy csökkenti az alkalmazás betöltésekor a just-in-time (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 összeállítások, jobb indítási teljesítményt nyújtanak.
Előnyök
- 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 ReleaseEz a kapcsoló a buildkonfigurációt "Release" módba állítja, amely az éles üzemelteté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=trueEz a tulajdonság lehetővé teszi a ReadyToRun fordítást, amely javítja az indítási teljesítményt az assemblyk előfordításával.
- Kattintson a jobb gombbal a projektre a Solution Explorer és válassza a Publish lehetőséget.
- 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.
- Válasszon egy mappahelyet, vagy fogadja el az alapértelmezett beállítást, majd válassza a Befejezés lehetőséget.
- A közzétételi profilban válassza az Összes beállítás megjelenítése lehetőséget.
- Az üzembehelyezési mód beállítása önálló vagy keretrendszerfüggőre.
- Állítsa Target Runtime a kívánt platformra (például win-x64 64 bites Windows).
- Jelölje be a ReadyToRun-fordítás engedélyezését.
- 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 kompilálá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 extra 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 a Kontainerize a .NET alkalmazáshivatkozások című témakörben talál további információt.
Előnyök
- 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: Egységes futtatókörnyezetet biztosít a fejlesztés, tesztelés és é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 konténerképek általában nagyobbak, mint a többi telepíté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 ReleaseEz a kapcsoló a buildkonfigurációt "Release" módba állítja, amely az éles üzemelteté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:PublishContainerEz 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=DefaultContainerEz a profil elindítja a tároló közzétételi folyamatát.
- Kattintson a jobb gombbal a projektre a Solution Explorer és válassza a Publish lehetőséget.
- 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.
- Válassza ki a tárolóregisztrációs adatbázist (például Azure Container Registry, Docker Hub vagy Generic Registry), majd válassza a Next lehetőséget.
- Konfigurálja a beállításjegyzék kapcsolati adatait és hitelesítését.
- A közzétételi profilban válassza az Összes beállítás megjelenítése lehetőséget.
- Állítsa be az üzembe helyezési módotönálló vagy keretrendszerfüggőre az igényeinek megfelelően.
- Állítsa be a cél futtatókörnyezetet a kívánt platformra (például Linux-x64 linuxos tárolókhoz).
- Konfiguráljon tárolóspecifikus beállításokat, például képnevet és címkéket.
- Válassza a Mentés , majd a Közzététel lehetőséget.
További információ a tároló üzembe helyezéséről: .NET SDK tárolólétrehozási áttekintése.