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


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

A .NET-tel létrehozott alkalmazások két különböző módban tehetők közzé, és ez a mód hatással van arra, hogy a felhasználó hogyan futtatja az alkalmazást.

Ha az alkalmazását önállóként teszi közzé, akkor egy olyan alkalmazás jön létre, amely tartalmazza a .NET futtatókörnyezetet és a kódtárakat, valamint az alkalmazását és annak függőségeit. Az alkalmazás felhasználói olyan gépen futtathatják, amelyen nincs telepítve a .NET-futtatókörnyezet.

Az alkalmazás közzététele keretrendszerfüggő módon egy olyan alkalmazást hoz létre, amely csak magát az alkalmazást és annak függőségeit tartalmazza. Az alkalmazás felhasználóinak külön kell telepíteniük a .NET-futtatókörnyezetet.

Mindkét közzétételi mód alapértelmezés szerint egy platformspecifikus végrehajtható fájlt hoz létre. A keretrendszerfüggő alkalmazások végrehajthatók nélkül hozhatók létre, és ezek az alkalmazások platformfüggetlenek.

Végrehajtható fájl létrehozásakor megadhatja a célplatformot futtatókörnyezet-azonosítóval (RID). További információ a biztonsági azonosítókról: .NET RID-katalógus.

Az alábbi táblázat az alkalmazás keretrendszerfüggőként vagy önállóként való közzétételéhez használt parancsokat ismerteti:

Típus Parancs
keretrendszerfüggő végrehajtható fájl a jelenlegi platformhoz. dotnet publish
keretrendszerfüggő végrehajtható egy adott platformhoz. dotnet publish -r <RID>
keretrendszerfüggő bináris. dotnet publish
önálló végrehajtható. dotnet publish -r <RID> --self-contained

További információ: .NET dotnet közzétételi parancs.

Végrehajtható fájl létrehozása

A végrehajtható elemek nem platformfüggetlenek, az operációs rendszerre és a CPU-architektúrára jellemzőek. Az alkalmazás közzétételekor és futtatható fájl készítésekor közzéteheti az alkalmazást akár önálló, akár keretfüggőmódon. Az alkalmazások önállóként való közzététele magában foglalja az alkalmazással való .NET-futtatókörnyezetet is, és az alkalmazás felhasználóinak nem kell aggódniuk a .NET telepítésével az alkalmazás futtatása előtt. Az alkalmazások keretrendszerfüggőként való közzététele nem tartalmazza a .NET-futtatókörnyezetet; csak az alkalmazás és a külső függőségek szerepelnek benne.

A következő parancsok létrehoznak egy végrehajtható parancsot:

Típus Parancs
keretrendszerfüggő végrehajtható az aktuális platformhoz. dotnet publish
keretrendszerfüggő végrehajtható fájl egy adott platformhoz. dotnet publish -r <RID>
önálló végrehajtható fájl. dotnet publish -r <RID> --self-contained

Platformfüggetlen bináris fájl létrehozása

A platformfüggetlen bináris fájlok akkor jönnek létre, amikor keretrendszerfüggőteszi közzé az alkalmazást egy dll fájl formájában. A dll fájl neve a projektről van elnevezve. Ha például word_readernevű alkalmazással rendelkezik, létrejön egy word_reader.dll nevű fájl. Az ily módon közzétett alkalmazások a dotnet <filename.dll> paranccsal futnak, és bármilyen platformon futtathatók.

A platformfüggetlen bináris fájlok bármilyen operációs rendszeren futtathatók, amíg a célként megadott .NET-futtatókörnyezet már telepítve van. Ha a megcélzott .NET-futtatókörnyezet nincs telepítve, előfordulhat, hogy az alkalmazás egy újabb futtatókörnyezet használatával fut, ha az alkalmazás az előregördítésre van konfigurálva. További információért lásd: keretrendszerfüggő alkalmazások továbbfejlesztése.

Az alkalmazást platformspecifikus végrehajthatóként vagy platformfüggetlen bináris fájlként is futtathatja dotnet paranccsal. Nem lehet alkalmazásviselkedési különbség, amikor a platformspecifikus végrehajtható fájlt indítják, szemben a szokásos szerveralkalmazások dotnet parancsaival. A platformspecifikus végrehajtható fájlon keresztüli indítás jobb integrációt biztosít a mögöttes operációs rendszerrel. Például:

  • Az alkalmazás végrehajtható neve megjelenik a folyamatlistában, és nem dotnet, ami zavaró lehet, ha több is van.
  • A platform-specifikus végrehajtható fájlokat az operációs rendszer specifikus funkcióival szabhatja testre. Lásd például a Windowsosalapértelmezett veremméret konfigurálásáról szóló beszélgetést.

Az alábbi parancs egy platformfüggetlen bináris fájlt hoz létre:

Típus Parancs
keretrendszerfüggő, platformfüggetlen bináris. dotnet publish

Keretrendszerfüggő közzététel

A keretrendszerfüggőként közzétett alkalmazások platformfüggetlenek, és nem tartalmazzák a .NET-futtatókörnyezetet. Az alkalmazás felhasználójának telepítenie kell a .NET-futtatókörnyezetet.

Az alkalmazás keretrendszerfüggő közzététele egy platformfüggetlen binárist hoz létre dll fájlként, és egy platformspecifikus végrehajtható állományt, amely az aktuális platformot célozza. A dll platformfüggetlen, míg a végrehajtható fájl nem. Ha például közzétesz egy word_reader nevű alkalmazást, és a Windows rendszert célozza meg, egy word_reader.exe végrehajtható fájl jön létre, valamint egy word_reader.dllis. Linux vagy macOS esetén létrejön egy word_reader végrehajtható fájl a(z) word_reader.dllmellett. Ha az alkalmazás platformspecifikus implementációkkal rendelkező NuGet-csomagot használ, a rendszer az összes platform függőségeit átmásolja a közzétételi\runtimes\{platform} mappába.

Az alkalmazás platformfüggetlen bináris fájlja a dotnet <filename.dll> paranccsal futtatható, és bármely platformon futtatható.

Platformspecifikus és keretrendszerfüggő

A platform-specifikus keretrendszerfüggő alkalmazás közzétételéhez megadhatja a -r <RID> paramétereket a dotnet publish parancsnak. A közzététel így megegyezik a keretrendszerfüggőközzétételével, azzal a kivétellel, hogy a platformspecifikus függőségek kezelése másként történik. Ha az alkalmazás platformspecifikus implementációkkal rendelkező NuGet-csomagot használ, a rendszer csak a célplatform függőségeit másolja át. Ezek a függőségek közvetlenül a közzétételi mappába lesznek átmásolva.

Bár a létrehozott bináris fájl gyakorlatilag platformfüggetlen, egy adott platform megcélzásával az alkalmazás nem garantáltan platformfüggetlenül fut. Lefuttathatod a dotnet <filename.dll>-t, de az alkalmazás összeomolhat, amikor megpróbál hozzáférni a hiányzó platformspecifikus függőségekhez.

További információért a RID-kről, lásd a .NET RID Katalógust.

Előnye

  • Kis méretű üzembe helyezés
    Csak az alkalmazás és a függőségei kerülnek terjesztésre. A .NET-futtatókörnyezetet és a kódtárakat a felhasználó telepíti, és minden alkalmazás megosztja a futtatókörnyezetet.

  • platformfüggetlen
    Az alkalmazás és bármely . A NET-alapú kódtár más operációs rendszereken fut. Nem kell célplatformot definiálnia az alkalmazáshoz. A .NET-fájlformátumról további információt .NET-szerelvényfájlformátumcímű témakörben talál.

  • A legújabb javított futtatókörnyezetet használja
    Az alkalmazás a célrendszerre telepített legújabb futtatókörnyezetet (a .NET megcélzott fő-alcsaládján belül) használja. Ez azt jelenti, hogy az alkalmazás automatikusan a .NET-futtatókörnyezet legújabb javított verzióját használja. Ez az alapértelmezett viselkedés felülírható. További információ: keretrendszerfüggő alkalmazások tovább gördülése.

Hátrányai

  • A futtatókörnyezeti előzetes telepítését igényli
    Az alkalmazás csak akkor futtatható, ha az általa megcélzott .NET-verzió már telepítve van a gazdarendszeren. Konfigurálhatja az alkalmazás roll-forward viselkedését úgy, hogy a .NET egy adott verzióját igényelje, vagy engedélyezze a .NET újabb verzióját. További információ: keretrendszerfüggő alkalmazások előre gördítése.

  • .NET változhat
    A .NET-futtatókörnyezet és a kódtárak frissíthetők azon a gépen, amelyen az alkalmazás fut. Ritkán ez megváltoztathatja az alkalmazás viselkedését, ha a .NET-kódtárakat használja, amelyeket a legtöbb alkalmazás használ. Beállíthatja, hogy az alkalmazás hogyan használja a .NET újabb verzióit. További információ: keretrendszerfüggő alkalmazások előrefelé gördülnek.

Példák

Az alkalmazás közzététele többplatformos és keretfüggő módban. A rendszer létrehoz egy végrehajtható fájlt, amely az aktuális platformot célozza a dll fájllal együtt. Minden platformspecifikus függőség közzé lesz téve az alkalmazással.

dotnet publish

Alkalmazás közzététele platformspecifikusként és keretrendszerfüggőként. A rendszer létrehoz egy Linux 64 bites végrehajtható fájlt a dll fájllal együtt. Csak a célplatform függőségei jelennek meg az alkalmazással.

dotnet publish -r linux-x64

Önállóan közzétéve

Az alkalmazás önálló csomagként való közzététele platformspecifikus végrehajtható fájlt eredményez. A kimeneti közzétételi mappa az alkalmazás összes összetevőjét tartalmazza, beleértve a .NET-kódtárakat és a cél futtatókörnyezetet. Az alkalmazás el van különítve más .NET-alkalmazásoktól, és nem használ helyileg telepített megosztott futtatókörnyezetet. Az alkalmazás felhasználójának nem kell letöltenie és telepítenie a .NET-et.

Az önálló alkalmazásokat úgy teheti közzé, hogy átadja a --self-contained paramétert a dotnet publish parancsnak. A végrehajtható bináris fájl a megadott célplatformhoz lesz létrehozva. Ha például egy word_readernevű alkalmazással rendelkezik, és önálló végrehajtható fájlt tesz közzé Windows rendszerre, létrejön egy word_reader.exe fájl. Linux vagy macOS rendszeren való közzétételkor létrejön egy word_reader fájl. A célplatform és az architektúra a dotnet publish parancs -r <RID> paraméterével van megadva. További információért a futtatási azonosítókról, lásd a .NET RID-katalógust.

Ha az alkalmazás platformspecifikus függőségekkel rendelkezik, például egy platformspecifikus függőségeket tartalmazó NuGet-csomaggal, ezeket a rendszer az alkalmazással együtt a közzétételi mappába másolja.

Előnye

  • A .NET verzió vezérlése
    Ön határozza meg, hogy a .NET melyik verziója legyen üzembe helyezve az alkalmazással.

  • Platform-specifikus célzás
    Mivel minden platformon közzé kell tennie az alkalmazást, tudja, hol fut az alkalmazás. Ha a .NET új platformot vezet be, a felhasználók addig nem futtathatják az alkalmazást ezen a platformon, amíg el nem bocsátanak egy, a platformot célzó verziót. Mielőtt a felhasználók az új platformon futtatják az alkalmazást, tesztelheti az alkalmazás kompatibilitási problémáit.

Hátrányai

  • Nagyobb telepítések
    Mivel az alkalmazás tartalmazza a .NET-futtatókörnyezetet és az összes alkalmazásfüggőséget, a szükséges letöltési méret és merevlemez-terület nagyobb, mint egy keretrendszerfüggő-verzió.

    Borravaló

    A Linux rendszereken való üzembe helyezés méretét körülbelül 28 MB-kal csökkentheti a .NET globalizációs invariáns módhasználatával. Ez arra kényszeríti az alkalmazást, hogy az összes kultúrát úgy kezelje, mint a invariáns kultúrát.

    Borravaló

    Az IL-vágás tovább csökkentheti az üzembe helyezés méretét.

  • Nehézséget okoz a .NET-verzió frissítése
    A .NET-futtatókörnyezet (az alkalmazással együtt terjesztve) csak az alkalmazás új verziójának kiadásával frissíthető.

Példák

Az alkalmazás közzététele önálló csomagként. Létrejön egy 64 bites macOS futtatható fájl.

dotnet publish -r osx-x64 --self-contained

Önálló alkalmazás közzététele. Létrejön egy Windows 64 bites végrehajtható fájl.

dotnet publish -r win-x64 --self-contained

Közzététel ReadyToRun-rendszerképekkel

A ReadyToRun rendszerképekkel való közzététel javítja az alkalmazás indítási idejét az alkalmazás méretének növelésével. További információ: ReadyToRun.

Előnye

  • Továbbfejlesztett indítási idő
    Az alkalmazás kevesebb időt tölt a JIT futtatásával.

Hátrányai

  • nagyobb méretű
    Az alkalmazás nagyobb a lemezen.

Példák

Önálló és ReadyToRun alkalmazás közzététele. Létrejön egy macOS 64 bites végrehajtható fájl.

dotnet publish -c Release -r osx-x64 --self-contained -p:PublishReadyToRun=true

Egy önálló és ReadyToRun alkalmazás közzététele. Létrejön egy Windows 64 bites végrehajtható fájl.

dotnet publish -c Release -r win-x64 --self-contained -p:PublishReadyToRun=true

Lásd még: