Přehled publikování aplikací .NET
Aplikace, které vytvoříte pomocí rozhraní .NET, můžete publikovat ve dvou různých režimech a režim ovlivňuje způsob, jakým uživatel spouští vaši aplikaci.
Publikování aplikace jako samostatného aplikace vytvoří aplikaci, která zahrnuje modul runtime a knihovny .NET a vaši aplikaci a její závislosti. Uživatelé aplikace ji mohou spustit na počítači, ve kterém není nainstalován modul .NET Runtime.
Publikování aplikace jako závislé na rozhraní vytvoří aplikaci, která obsahuje pouze vlastní aplikaci a její závislosti. Uživatelé aplikace musí samostatně nainstalovat modul runtime .NET.
Oba režimy publikování vytvoří ve výchozím nastavení spustitelný soubor specifický pro platformu. Aplikace závislé na rozhraních se dají vytvořit bez spustitelného souboru a tyto aplikace jsou pro různé platformy.
Když je vytvořen spustitelný soubor, můžete zadat cílovou platformu s identifikátorem modulu runtime (RID). Další informace o identifikátorů RID najdete v článku katalog identifikátorů .NET RID.
Následující tabulka popisuje příkazy, které slouží k publikování aplikace jako závislé nebo samostatné, na verzi sady SDK:
| Typ | SDK 2.1 | SADA SDK 3,1 | SADA SDK 5,0 | Příkaz |
|---|---|---|---|---|
| spustitelný soubor závislý na rozhraní pro aktuální platformu. | ✔️ | ✔️ | dotnet publish |
|
| spustitelný soubor závislý na rozhraní pro konkrétní platformu. | ✔️ | ✔️ | dotnet publish -r <RID> --self-contained false |
|
| binární soubor pro více platforem závislý na rozhraní. | ✔️ | ✔️ | ✔️ | dotnet publish |
| samostatně obsažený spustitelný soubor. | ✔️ | ✔️ | ✔️ | dotnet publish -r <RID> |
Další informace naleznete v tématu .net dotnet Publish Command.
Získání spustitelného souboru
Spustitelné soubory nejsou pro různé platformy. Jsou specifické pro operační systém a architekturu procesoru. Při publikování aplikace a vytvoření spustitelného souboru můžete aplikaci publikovat jako samostatně nebo jako závislé na rozhraní. Publikování aplikace jako samostatné zahrnuje modul runtime .NET s aplikací a uživatelé aplikace se nemusí starat o instalaci .NET před spuštěním aplikace. Aplikace publikované jako závislé na rozhraní neobsahují modul runtime a knihovny .NET. jsou zahrnuté jenom závislosti aplikace a třetí strany.
Následující příkazy vyprodukuje spustitelný soubor:
| Typ | SDK 2.1 | SADA SDK 3,1 | SADA SDK 5,0 | Příkaz |
|---|---|---|---|---|
| spustitelný soubor závislý na rozhraní pro aktuální platformu. | ✔️ | ✔️ | dotnet publish |
|
| spustitelný soubor závislý na rozhraní pro konkrétní platformu. | ✔️ | ✔️ | dotnet publish -r <RID> --self-contained false |
|
| samostatně obsažený spustitelný soubor. | ✔️ | ✔️ | ✔️ | dotnet publish -r <RID> |
Vytvoření binárního souboru pro různé platformy
Binární soubory pro různé platformy se vytvářejí při publikování aplikace jako závislé na rozhraní, ve formě souboru DLL . Soubor DLL se jmenuje po vašem projektu. Například pokud máte aplikaci s názvem word_reader, vytvoří se soubor s názvem word_reader.dll . Aplikace publikované tímto způsobem jsou spouštěny s dotnet <filename.dll> příkazem a lze je spustit na libovolné platformě.
Binární soubory pro různé platformy je možné spouštět v jakémkoli operačním systému, pokud je již cílový modul .NET Runtime nainstalován. Pokud cílový modul runtime .NET není nainstalovaný, může se aplikace spustit s novějším modulem runtime, pokud je aplikace nakonfigurovaná tak, aby se předalo. Další informace najdete v tématu předejte vám aplikace závislé na rozhraní.
Následující příkaz vytvoří binární soubor pro různé platformy:
| Typ | SDK 2.1 | Sada SDK 3. x | SADA SDK 5,0 | Příkaz |
|---|---|---|---|---|
| binární soubor pro více platforem závislý na rozhraní. | ✔️ | ✔️ | ✔️ | dotnet publish |
Publikování závislé na rozhraní
Aplikace publikované jako rozhraní závislé na platformě jsou mezi platformami a neobsahují modul runtime .NET. K instalaci modulu runtime .NET je nutný uživatel vaší aplikace.
Publikování aplikace jako závislého na rozhraní vytvoří binární soubor pro různé platformy jako soubor DLL a spustitelný soubor specifický pro platformu , který cílí na aktuální platformu. Knihovna DLL je více než platforma, zatímco spustitelný soubor není. pokud například publikujete aplikaci s názvem word_reader a cílovou Windows, vytvoří se word_reader.exe spustitelný soubor spolu s word_reader.dll. Při cílení na Linux nebo macOS se vytvoří spustitelný soubor word_reader společně s word_reader.dll. Další informace o identifikátorů RID najdete v článku katalog identifikátorů .NET RID.
Důležité
Sada .NET SDK 2,1 nevytváří spustitelné soubory specifické pro platformu při publikování závislého na rozhraní aplikace.
Binární soubor pro více platforem aplikace můžete spustit pomocí dotnet <filename.dll> příkazu a můžete ho spustit na libovolné platformě. pokud aplikace používá balíček NuGet, který má implementace specifické pro platformu, zkopírují se všechny závislosti platforem do složky publikování společně s aplikací.
Pro konkrétní platformu můžete vytvořit spustitelný soubor předáním -r <RID> --self-contained false parametrů dotnet publish příkazu. Pokud -r je parametr vynechán, vytvoří se spustitelný soubor pro vaši aktuální platformu. všechny NuGet balíčky, které mají závislosti specifické pro platformu pro cílovou platformu, se zkopírují do složky pro publikování. Pokud nepotřebujete spustitelný soubor specifický pro platformu, můžete zadat <UseAppHost>False</UseAppHost> v souboru projektu. další informace naleznete v tématu MSBuild reference pro projekty .net SDK.
Výhody
Malé nasazení
Distribuuje se jenom vaše aplikace a její závislosti. Modul runtime .NET a knihovny jsou nainstalovány uživatelem a všemi aplikacemi, které sdílí modul runtime.Pro různé platformy
Vaše aplikace a všechny. Knihovna založená na síti běží na jiných operačních systémech. Pro vaši aplikaci nemusíte definovat cílovou platformu. Informace o formátu souboru .NET naleznete v tématu Formát souboru sestavení .NET.Používá nejnovější opravený modul runtime.
Aplikace používá nejnovější modul runtime (v rámci cílové hlavní řady rozhraní .NET) nainstalovaného v cílovém systému. To znamená, že vaše aplikace automaticky používá nejnovější opravenou verzi modulu runtime .NET. Toto výchozí chování lze přepsat. Další informace najdete v tématu předejte vám aplikace závislé na rozhraní.
Nevýhody
Vyžaduje předběžnou instalaci modulu runtime.
Vaše aplikace může běžet pouze v případě, že je již v hostitelském systému nainstalovaná verze rozhraní .NET, na kterou vaše aplikace cílí. V případě, že chcete, aby aplikace vyžadovala určitou verzi rozhraní .NET nebo umožňovala novější verzi rozhraní .NET, můžete nakonfigurovat chování při přeposílání. Další informace najdete v tématu předejte vám aplikace závislé na rozhraní..NET se může změnit
Běhový modul runtime a knihovny je možné aktualizovat v počítači, ve kterém je aplikace spuštěná. Ve výjimečných případech to může změnit chování aplikace, pokud používáte knihovny .NET, které dělají většina aplikací. Můžete nakonfigurovat, jak vaše aplikace používá novější verze rozhraní .NET. Další informace najdete v tématu předejte vám aplikace závislé na rozhraní.
Následující nevýhody platí jenom pro .NET Core 2,1 SDK.
- Použití
dotnetpříkazu ke spuštění aplikace
Uživatelé musí spustitdotnet <filename.dll>příkaz pro spuštění aplikace. Sada .NET Core 2,1 SDK nevytváří spustitelné soubory specifické pro platformu pro publikované rozhraní závislé na platformě.
Příklady
Publikování aplikace závislé na architektuře pro různé platformy. Spustitelný soubor, který cílí na aktuální platformu, se vytvoří společně se souborem DLL .
dotnet publish
Publikování aplikace závislé na architektuře pro různé platformy. Společně se souborem DLL je vytvořen spustitelný soubor Linux 64. Tento příkaz nefunguje s .NET Core SDK 2,1.
dotnet publish -r linux-x64 --self-contained false
Publikování samostatného kontejneru
Publikování aplikace jako samostatně obsahuje spustitelný soubor specifický pro platformu. Výstupní složka pro publikování obsahuje všechny komponenty aplikace včetně knihoven .NET a cílového modulu runtime. Aplikace je izolovaná od ostatních aplikací .NET a nepoužívá místně nainstalovaný sdílený modul runtime. Uživatel vaší aplikace není potřebný ke stažení a instalaci rozhraní .NET.
Spustitelný soubor executable je vytvořen pro zadanou cílovou platformu. pokud máte například aplikaci s názvem word_reader a publikujete samostatně uložený spustitelný soubor pro Windows, vytvoří se soubor word_reader.exe . Publikování pro Linux nebo macOS se vytvoří soubor word_reader . Cílová platforma a architektura se zadává pomocí -r <RID> parametru pro dotnet publish příkaz. Další informace o identifikátorů RID najdete v článku katalog identifikátorů .NET RID.
pokud má aplikace závislosti specifické pro platformu, například NuGet balíčku obsahujícího závislosti specifické pro platformu, zkopírují se do složky publikování společně s aplikací.
Výhody
Verze ovládacího prvku .NET
Můžete řídit, která verze rozhraní .NET je nasazena s vaší aplikací.Cílení na konkrétní platformu
Vzhledem k tomu, že je nutné aplikaci publikovat pro každou platformu, víte, kde bude aplikace spuštěna. Pokud .NET zavádí novou platformu, uživatelé nemůžou svou aplikaci na této platformě spustit, dokud neuvolníte verzi, která cílí na tuto platformu. Před spuštěním vaší aplikace na nové platformě můžete aplikaci otestovat pro problémy s kompatibilitou.
Nevýhody
Větší nasazení
Vzhledem k tomu, že vaše aplikace zahrnuje modul runtime .NET a všechny závislosti aplikací, je velikost stahovaných a požadované místo na pevném disku vyšší než verze závislá na rozhraní .Tip
Velikost svého nasazení v systémech Linux můžete zmenšit přibližně o 28 MB pomocí režimu invariantovánírozhraní .NET pro globalizaci. To vynutí, aby vaše aplikace považovala všechny kultury jako invariantní jazykovou verzi.
Tip
Oříznutí Il může dále snižovat velikost vašeho nasazení.
Těžší aktualizace verze .NET
.NET runtime (distribuované s vaší aplikací) se dá upgradovat jenom vydáním nové verze vaší aplikace. .NET ale aktualizuje důležité opravy zabezpečení podle potřeby v knihovně rozhraní v počítači, ve kterém je vaše aplikace spuštěná. Zodpovídáte za koncové ověření tohoto scénáře opravy zabezpečení.
Příklady
Publikujte samostatně obsaženou aplikaci. Je vytvořen macOS 64 bitový spustitelný soubor.
dotnet publish -r osx-x64
Publikujte samostatně obsaženou aplikaci. je vytvořen Windows 64 bitový spustitelný soubor.
dotnet publish -r win-x64
Publikování pomocí ReadyToRun imagí
Publikování pomocí ReadyToRun imagí vylepšuje čas spuštění vaší aplikace za cenu zvýšení velikosti vaší aplikace. Další podrobnosti najdete v tématu ReadyToRun pro publikování pomocí ReadyToRun.
Výhody
- Vylepšený čas spuštění
Aplikace bude trávit méně času na spuštění JIT.
Nevýhody
- Větší velikost
Aplikace bude větší na disku.
Příklady
Publikujte aplikaci, která je samostatně obsažená a ReadyToRun. Je vytvořen macOS 64 bitový spustitelný soubor.
dotnet publish -c Release -r osx-x64 -p:PublishReadyToRun=true
Publikujte aplikaci, která je samostatně obsažená a ReadyToRun. je vytvořen Windows 64 bitový spustitelný soubor.
dotnet publish -c Release -r win-x64 -p:PublishReadyToRun=true