Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 33299|Odpoveď: 2

[.NET Core] Nové funkcie .NET Core uvoľňujú spustiteľný súbor s jedným súborom

[Kopírovať odkaz]
Zverejnené 28. 9. 2019 o 16:38:47 | | | |
Pred niekoľkými dňami Microsoft vydal .NET Core 3.0 a jedným z najväčších vylepšení je podpora desktopových aplikácií pre Windows (iba Windows). Použitím .NET Core 3.0 SDK Windows Desktop Component môžete portovať aplikácie Windows Forms a Windows Presentation Foundation (WPF). Pre jasnosť, komponenty Windows desktopu sú podporované a zahrnuté iba vo Windows.

Adresa na stiahnutie SDK:Prihlásenie na hypertextový odkaz je viditeľné.

Odkazy na predstavenie funkcií .NET Core:

Prihlásenie na hypertextový odkaz je viditeľné.
Prihlásenie na hypertextový odkaz je viditeľné.

Funkcie zahŕňajú nasledovné:

  • Použite C# na tvorbu bohatých, interaktívnych klientských webových aplikácií.
  • Použite gRPC na vytváranie vysoko výkonných backendových služieb.
  • SignalR teraz podporuje automatické opätovné pripojenie a klient-server toky.
  • Použite dokumentáciu OpenAPI na generovanie silne typovaného klientskeho kódu pre webové API.
  • Smerovanie koncových bodov je integrované cez tento framework.
  • Kestrel má predvolene zapnuté HTTP/2.
  • Integrované webové API a podpora overovania aplikácií na jednej strane.
  • Podporované sú certifikáty a autentifikácia Kerberos.
  • Integrovať nový serializér System.Text.Json.
  • Nový univerzálny hosting nastavuje bežné spravované služby ako injekcia závislostí, konfiguráciu a logovanie.
  • Nová šablóna Worker Service na budovanie dlhodobých služieb.
  • Nové EventCountery sa vytvárajú pre požiadavky za sekundu, celkové, aktuálne a neúspešné požiadavky.
  • Chyby pri štarte hostované v IIS sú teraz hlásené do Windows Event Log.
  • Požiadajte o integráciu pipeline System.IO.Pipelines.
  • Zlepšenie výkonu v celom technologickom stacku.

Vytvorme nový .NET Core 3.0 konzolový projekt s VS 2019, ako je znázornené na obrázku nižšie:



Odkazujúc na balík Newtonsoft.Json, napíšte niekoľko riadkov kódu, nasledovne:


Klikneme pravým tlačidlom na VS Regenerate, potom otvoríme adresár bin projektu a zistíme, že bude vygenerovaných niekoľko súborov, vrátane :demo1.exe a Newtonsoft.Json.dll súborov.



Publikovať spustiteľný súbor s jedným súborom

Metóda 1:

Spustite nasledujúci príkaz v adresári projektu:



Otvoríme priečinok C:\Users\itsvse_pc\source\repos\demo1\demo1\bin\Debug\netcoreapp3.0\win10-x64 a zistíme, že je vygenerovaných veľa dll súborov a je tam priečinok na publikovanie.

Choďte do priečinka publikovať,Veľkosť demo1.exe zobrazenia je 66M, čo je rovnaká veľkosť ako všetky súbory mimo priečinka, ako je znázornené na obrázku nižšie:



Generovaný jediný spustiteľný súbor v skutočnosti obsahuje prostredie potrebné na spustenie programu a nevyžaduje, aby cieľový počítač inštaloval SDK, pričom nevýhodou je, že veľkosť súboru bude veľmi veľká.

Metóda 2:

Kliknutím pravým tlačidlom namiesto úpravy projektového súboru a pridaním konfigurácie uzla PublishSingleFile je kód nasledovný:

Potom kliknite pravým tlačidlom a kliknite na tlačidlo "Publikovať".


Montážne spoje

.NET core 3.0 SDK obsahuje nástroj, ktorý dokáže zmenšiť veľkosť vašej aplikácie analýzou IL a orezávaním nevyužitých assemblerov.

Samostatné aplikácie obsahujú všetko, čo potrebujete na spúšťanie kódu bez nutnosti inštalovať .NET na hlavný počítač. Avšak často aplikácia potrebuje len zlomok frameworku na spustenie a iné nepoužívané knižnice môžu byť odstránené.

.NET Core teraz obsahuje nastavenie, ktoré skenuje IL vašej aplikácie pomocou nástroja IL linker. Tento nástroj zistí, ktorý kód je potrebný, a potom vyreže nepoužité knižnice. Tento nástroj môže výrazne znížiť veľkosť nasadenia niektorých aplikácií.

Ak chcete tento nástroj aktivovať, použite <PublishTrimmed> nastavenia vo vašom projekte a publikujte samostatnú aplikáciu:

.NET Core CLI


Práve sme vygenerovali 66M súbor a po pridaní konfigurácie,Zvýšil sa na 35M, čím sa znížila obsadenosť na 30M.

Nezabudnite zvážiť aplikácie alebo frameworky, ktoré používajú reflexie alebo súvisiace dynamické funkcie (vrátane ASP.NET Core a WPF).Zvyčajne poškodené pri rezaníTáto korupcia nastáva, pretože linker si nie je vedomý tohto dynamického správania a nedokáže určiť, ktoré typy rámcov sú potrebné na reflexiu。 Nástroj IL linker je možné nakonfigurovať tak, aby túto situáciu odhalil.

Najdôležitejšie je, aby ste ho naniesli po odrezaníVykonávať testy


(Koniec)






Predchádzajúci:Vyrieš, že ajax nedokáže priradiť hodnoty externým premenným
Budúci:Jazyk C je taký silný, v akom jazyku je napísaný?
Zverejnené 29.9.2019 09:30:44 |

Ďakujem, že ste sa podelili
 Prenajímateľ| Zverejnené 30.10.2019 09:14:15 |
Obrázok ReadyToRun
Môže sa zlepšiť kompiláciou aplikačnej sady do formátu ReadyToRun (R2R). Štart NET Core aplikácie.

R2R je forma predkompilovaného (AOT). R2R binárky zlepšujú výkon pri štarte tým, že znižujú množstvo práce, ktorú kompilátory v reálnom čase (JIT) musia vykonať pri načítaní aplikácie. Binárka obsahuje natívny kód podobný tomu, ktorý generuje JIT. R2R binárky sú však väčšie, pretože obsahujú kód pre medzijazykový jazyk (IL) (ktorý je v niektorých prípadoch stále potrebný) a natívnu verziu toho istého kódu. R2R je dostupné len vtedy, keď publikujete samostatnú aplikáciu, ktorá cieli na konkrétne runtime prostredie (RID), napríklad Linux x64 alebo Windows x64.



Tu najprv zanecháme komentár a <PublishTrimmed>potom pridáme<PublishReadyToRun>:

Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com