Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 33299|Odpověď: 2

[.NET Core] Nové funkce .NET Core vydávají spustitelný soubor s jedním souborem

[Kopírovat odkaz]
Zveřejněno 28. 9. 2019 16:38:47 | | | |
Před několika dny Microsoft vydal .NET Core 3.0 a jedním z největších vylepšení je podpora desktopových aplikací pro Windows (pouze pro Windows). Použitím .NET Core 3.0 SDK Windows Desktop Component můžete portovat aplikace Windows Forms a Windows Presentation Foundation (WPF). Pro upřesnění, komponenty desktopu Windows jsou podporovány a zahrnuty pouze ve Windows.

Adresa ke stažení SDK:Přihlášení k hypertextovému odkazu je viditelné.

Odkazy na představení funkcí .NET Core:

Přihlášení k hypertextovému odkazu je viditelné.
Přihlášení k hypertextovému odkazu je viditelné.

Mezi funkce patří následující:

  • Použijte C# k tvorbě bohatých, interaktivních klientských webových aplikací.
  • Použijte gRPC k vytváření vysoce výkonných backendových služeb.
  • SignalR nyní podporuje automatické opětovné připojení a toky klient-server.
  • Použijte dokumentaci OpenAPI k generování silně psaného klientského kódu pro webová API.
  • Směrování koncových bodů je integrováno prostřednictvím tohoto rámce.
  • Kestrel má HTTP/2 ve výchozím nastavení zapnuté.
  • Integrované webové API a podpora ověřování aplikací na jedné stránce.
  • Podporovány jsou certifikáty a ověřování pomocí Kerberos.
  • Integrujte nový serializér System.Text.Json.
  • Nový univerzální hosting nastavuje běžné spravované služby, jako je injekce závislostí, konfigurace a logování.
  • Nová šablona Worker Service pro budování dlouhodobých služeb.
  • Nové EventCountery jsou vytvářeny pro požadavky za sekundu, celkové, aktuální a neúspěšné požadavky.
  • Chyby při spuštění hostované v IIS jsou nyní hlášeny do Windows Event Logu.
  • Požádat o integraci pipeline System.IO.Pipelines.
  • Zlepšení výkonu napříč celým technologickým zásobníkem.

Vytvoříme nový projekt konzole .NET Core 3.0 ve VS 2019, jak je znázorněno na obrázku níže:



Odkazujíc na balíček Newtonsoft.Json, napište několik řádků kódu, následovně:


Klikneme pravým tlačítkem na VS Regenerate, otevřeme adresář bin projektu a zjistíme, že bude generováno několik souborů, včetně :demo1.exe a Newtonsoft.Json.dll souborů.



Publikovat spustitelný soubor s jedním souborem

Metoda 1:

Spusť následující příkaz v adresáři projektu:



Otevřeme složku C:\Users\itsvse_pc\source\repos\demo1\demo1\bin\Debug\netcoreapp3.0\win10-x64 a zjistíme, že je vygenerováno mnoho dll souborů a je tam složka pro publikování.

Přejděte do složky publikovat,Velikost demo1.exe zobrazení je 66M, což je stejně velké jako všechny soubory mimo složku, jak je znázorněno na obrázku níže:



Generovaný jediný spustitelný soubor ve skutečnosti obsahuje prostředí potřebné pro spuštění programu a nevyžaduje, aby cílový počítač instaloval SDK, přičemž nevýhodou je, že velikost souboru bude velmi velká.

Metoda 2:

Klikněte pravým tlačítkem vs upravit projektový soubor a přidat konfiguraci uzlu PublishSingleFile, kód je následující:

Pak klikněte pravým tlačítkem a klikněte na tlačítko "Publikovat".


Spojení sboru

.NET core 3.0 SDK obsahuje nástroj, který může zmenšit velikost vaší aplikace analýzou IL a ořezáním nevyužitých assemblerů.

Samostatné aplikace obsahují vše, co potřebujete k běžnému kódu bez nutnosti instalace .NET na hlavní počítač. Často však aplikace potřebuje k běhu jen zlomek frameworku a jiné nevyužité knihovny lze odstranit.

.NET Core nyní obsahuje nastavení, které skenuje IL vaší aplikace pomocí nástroje IL linker. Tento nástroj zjistí, který kód je potřeba, a poté ořízne nepoužité knihovny. Tento nástroj může výrazně snížit velikost nasazení některých aplikací.

Pro povolení tohoto nástroje použijte <PublishTrimmed> nastavení ve svém projektu a publikujte samostatnou aplikaci:

.NET Core CLI


Právě jsme vygenerovali soubor 66M a po přidání konfigurace,Zvýšil se na 35 m, čímž se snížila obsazenost o 30 m

Nezapomeňte zvážit aplikace nebo frameworky, které používají reflections nebo související dynamické funkce (včetně ASP.NET Core a WPF).Obvykle se při řezání poškodíTato korupce nastává, protože linker si tohoto dynamického chování není vědom a nemůže určit, které typy rámců jsou potřeba pro reflexi。 Nástroj IL linker lze nastavit tak, aby tuto situaci odhalil.

Nejdůležitější je aplikovat ho po řezáníProvést testy


(Konec)






Předchozí:Vyřeš, že ajax nemůže přiřadit hodnoty externím proměnným
Další:Jazyk C je tak silný, v jakém jazyce je napsán?
Zveřejněno 29. 9. 2019 09:30:44 |

Děkuji, že jste se podělili
 Pronajímatel| Zveřejněno 30. 10. 2019 09:14:15 |
Obrázek ReadyToRun
Lze jej vylepšit kompilací aplikační sady do formátu ReadyToRun (R2R). Spuštění aplikace NET Core.

R2R je forma předkompilovaného (AOT). R2R binárky zlepšují výkon při startu tím, že snižují množství práce, kterou kompilátory v reálném čase (JIT) musí při načítání aplikace vykonávat. Binární soubor obsahuje nativní kód podobný tomu, co generuje JIT. R2R binární soubory jsou však větší, protože obsahují kód mezilehlého jazyka (IL) (který je v některých případech stále vyžadován) a nativní verzi stejného kódu. R2R je dostupný pouze tehdy, když publikujete samostatnou aplikaci, která cílí na konkrétní runtime prostředí (RID), například Linux x64 nebo Windows x64.



Nejprve zde zanecháme komentář a <PublishTrimmed>pak přidáme<PublishReadyToRun>:

Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com