A .NET-alkalmazások közzétételének á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 önállóan teszi közzé az alkalmazást, létrejön egy alkalmazás, amely tartalmazza a . NET-futtatókörnyezetet és a kódtárakat, valamint az alkalmazást é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.
Ha az alkalmazást keretrendszerfüggőként teszi közzé, 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 platformspecifikus végrehajtható fájlt hoz létre. A keretrendszertől függő alkalmazások végrehajtható fájlok 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 egy futtatókörnyezet-azonosítóval (RID). A fenntartott példányokról további információt a .NET RID-katalógusban talál.
Az alábbi táblázat az alkalmazás SDK-verziónkénti keretrendszer-függőként vagy önállóan történő közzétételéhez használt parancsokat ismerteti:
Típus | SDK 2.1 | SDK 3.1 | SDK 5.0 | SDK 6.0 | Parancs |
---|---|---|---|---|---|
keretrendszertől függő végrehajtható fájl az aktuális platformhoz. | ✔️ | ✔️ | ✔️ | dotnet publish |
|
keretrendszertől függő végrehajtható fájl egy adott platformon. | ✔️ | ✔️ | ✔️ | dotnet publish -r <RID> --self-contained false |
|
keretrendszer-függő, platformfüggetlen bináris fájl. | ✔️ | ✔️ | ✔️ | ✔️ | dotnet publish |
önálló végrehajtható fájl. | ✔️ | ✔️ | ✔️ | ✔️ | dotnet publish -r <RID> |
További információ: .NET dotnet publish command.
Végrehajtható fájl létrehozása
A végrehajtható fájlok nem platformfüggetlenek. Ezek az operációs rendszerre és a CPU-architektúrára jellemzőek. Az alkalmazás közzétételekor és egy végrehajtható fájl létrehozásakor közzéteheti önállóan vagykeretrendszertől függőként. Az alkalmazás önállóként való közzététele magában foglalja az alkalmazással rendelkező .NET-futtatókörnyezetet, és az alkalmazás felhasználóinak nem kell aggódniuk a .NET telepítésével az alkalmazás futtatása előtt. A keretrendszer-függőként közzétett alkalmazások nem tartalmazzák a .NET-futtatókörnyezetet és a kódtárakat; csak az alkalmazás és a külső függőségek szerepelnek.
A következő parancsok létrehoznak egy végrehajtható fájlt:
Típus | SDK 2.1 | SDK 3.1 | SDK 5.0 | SDK 6.0 | Parancs |
---|---|---|---|---|---|
keretrendszertől függő végrehajtható fájl az aktuális platformhoz. | ✔️ | ✔️ | ✔️ | dotnet publish |
|
keretrendszertől függő végrehajtható fájl egy adott platformon. | ✔️ | ✔️ | ✔️ | dotnet publish -r <RID> --self-contained false |
|
önálló végrehajtható fájl. | ✔️ | ✔️ | ✔️ | ✔️ | dotnet publish -r <RID> |
Platformfüggetlen bináris fájl létrehozása
A platformfüggetlen bináris fájlok akkor jönnek létre, amikor az alkalmazást keretrendszerfüggőként, DLL-fájl formájában teszi közzé. A DLL-fájl neve a projektről van elnevezve. Ha például word_reader nevű alkalmazással rendelkezik, létrejön egy word_reader.dll nevű fájl. Az így közzétett alkalmazások a dotnet <filename.dll>
paranccsal futnak, és bármely platformon futtathatók.
A platformfüggetlen bináris fájlok bármilyen operációs rendszeren futtathatók, ha a célként megadott .NET-futtatókörnyezet már telepítve van. Ha a cé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 a továbbításra van konfigurálva. További információkért tekintse meg a keretrendszertől függő alkalmazások előretekeréséről szóló témakört.
A következő parancs platformfüggetlen bináris fájlt hoz létre:
Típus | SDK 2.1 | SDK 3.x | SDK 5.0 | SDK 6.0 | Parancs |
---|---|---|---|---|---|
keretrendszer-függő, platformfüggetlen bináris fájl. | ✔️ | ✔️ | ✔️ | ✔️ | dotnet publish |
Keretrendszertől függő közzététel
A keretrendszer-fü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ások keretrendszerfüggőként való közzététele egy platformfüggetlenbináris fájlt hoz létre DLL-fájlként, és egy platformspecifikus végrehajtható fájlt, 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 cél Windows, aword_reader.dllmellett létrejön egy word_reader.exe végrehajtható fájl is. Linux vagy macOS rendszeren aword_reader.dllmellett egy word_reader végrehajtható fájl is létrejön . A fenntartott példányokról további információt a .NET RID-katalógusban talál.
Fontos
A .NET SDK 2.1 nem hoz létre platformspecifikus végrehajtható fájlokat az alkalmazás keretrendszerétől függő közzétételekor.
Az alkalmazás platformfüggetlen bináris fájlja futtatható a dotnet <filename.dll>
paranccsal, és bármilyen platformon futtatható. Ha az alkalmazás platformspecifikus implementációkkal rendelkező NuGet-csomagot használ, a rendszer az alkalmazással együtt az összes platform függőségét a közzétételi mappába másolja.
Egy adott platformhoz végrehajtható fájlt úgy hozhat létre, hogy átadja a -r <RID> --self-contained false
paramétereket a dotnet publish
parancsnak. Ha a -r
paraméter nincs megadva, a rendszer létrehoz egy végrehajtható fájlt az aktuális platformhoz. A megcélzott platform platformspecifikus függőségeit tartalmazó NuGet-csomagok a közzétételi mappába lesznek másolva. Ha nincs szüksége platformspecifikus végrehajtható fájlra, megadhatja <UseAppHost>False</UseAppHost>
a projektfájlban. További információ: MSBuild reference for .NET SDK projects.
Előnyök
Kis méretű üzembe helyezés
Csak az alkalmazás és annak függőségei vannak elosztva. 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 a .NET szerelvényfájlformátumában 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 használja (a megcélzott nagyobb-alverziós .NET-családon belül). 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ülbíráltatható. További információ: keretrendszerfüggő alkalmazások bevezetése.
Hátrányok
A futtatókörnyezet előzetes telepítését igényli
Az alkalmazás csak akkor futtatható, ha az alkalmazáspéldányok .NET-verziója már telepítve van a gazdarendszerben. 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 bevezetése.A .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. Ritka esetekben 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 bevezetése.
A következő hátrány csak a .NET Core 2.1 SDK-ra vonatkozik.
- Az alkalmazás indítása a
dotnet
paranccsal
A felhasználóknak futtatniuk kell adotnet <filename.dll>
parancsot az alkalmazás elindításához. A .NET Core 2.1 SDK nem készít platformspecifikus végrehajtható fájlokat a keretrendszertől függőként közzétett alkalmazásokhoz.
Példák
Platformfüggetlen alkalmazás közzététele keretrendszertől függően. Létrejön egy végrehajtható fájl, amely az aktuális platformot célozza a DLL-fájllal együtt.
dotnet publish
Platformfüggetlen alkalmazás közzététele keretrendszertől függően. A dll-fájllal együtt létrejön egy Linux 64 bites végrehajtható fájl. Ez a parancs nem működik a .NET Core SDK 2.1-ben.
dotnet publish -r linux-x64 --self-contained false
Önálló közzététel
Az alkalmazás önállóké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 a többi .NET-alkalmazástó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.
A végrehajtható bináris fájl a megadott célplatformhoz lesz létrehozva. Ha például word_reader nevű alkalmazással rendelkezik, és önkiszolgáló végrehajtható fájlt tesz közzé Windows számára, létrejön egy word_reader.exe fájl. Linux vagy macOS rendszeren történő közzétételkor létrejön egy word_reader fájl. A célplatform és az architektúra a parancs paraméterével -r <RID>
dotnet publish
van megadva. További információ a fenntartott példányokról: .NET RID-katalógus.
Ha az alkalmazás platformspecifikus függőségekkel rendelkezik, például platformspecifikus függőségeket tartalmazó NuGet-csomaggal, ezek az alkalmazással együtt a közzétételi mappába lesznek másolva.
Előnyök
.NET-verzió szabályozása
Ön szabályozza, hogy a .NET melyik verziója legyen üzembe helyezve az alkalmazással.Platformspecifikus célzás
Mivel minden platformon közzé kell tennie az alkalmazást, tudja, hol fog futni 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 nem ad ki egy, a platformot célzó verziót. Tesztelheti az alkalmazást kompatibilitási problémák esetén, mielőtt a felhasználók az új platformon futtatják az alkalmazást.
Hátrányok
Nagyobb üzemelő példányok
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 keretrendszertől függő verzió.Tipp
A . NET-globalizáció invariáns móddal körülbelül 28 MB-tal csökkentheti a Linux rendszereken történő üzembe helyezés méretét. Ez arra kényszeríti az alkalmazást, hogy az összes kultúrát úgy kezelje, mint az invariáns kultúrát.
Tipp
Az IL-vágás tovább csökkentheti az üzembe helyezés méretét.
Nehezebb frissíteni a .NET-verziót
A .NET-futtatókörnyezet (az alkalmazással együtt terjesztve) csak az alkalmazás új verziójának kiadásával frissíthető. A .NET azonban szükség szerint frissíti a kritikus biztonsági javításokat az alkalmazás által futtatott gépen lévő keretrendszertárhoz. Ön felelős a biztonsági javítások forgatókönyvének teljes körű ellenőrzéséért.
Példák
Alkalmazás közzététele önállóan. Létrejön egy macOS 64 bites végrehajtható fájl.
dotnet publish -r osx-x64
Alkalmazás közzététele önállóan. Létrejön egy Windows 64 bites végrehajtható fájl.
dotnet publish -r win-x64
Közzététel ReadyToRun-rendszerképekkel
A ReadyToRun rendszerképekkel való közzététel növeli az alkalmazás indítási idejét az alkalmazás méretének növelésével. A ReadyToRun használatával való közzétételhez további részletekért lásd: ReadyToRun .
Előnyök
- Továbbfejlesztett indítási idő
Az alkalmazás kevesebb időt tölt a JIT futtatásával.
Hátrányok
- Nagyobb méret
Az alkalmazás nagyobb lesz a lemezen.
Példák
Önálló alkalmazás és ReadyToRun közzététele. Létrejön egy macOS 64 bites végrehajtható fájl.
dotnet publish -c Release -r osx-x64 -p:PublishReadyToRun=true
Önálló alkalmazás és ReadyToRun közzététele. Létrejön egy Windows 64 bites végrehajtható fájl.
dotnet publish -c Release -r win-x64 -p:PublishReadyToRun=true