Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 33299|Odgovoriti: 2

[.NET Core] Nove funkcije .NET Core izdajajo izvršljivo datoteko z eno datoteko

[Kopiraj povezavo]
Objavljeno 28. 9. 2019 ob 16:38:47 | | | |
Pred nekaj dnevi je Microsoft izdal .NET Core 3.0, ena največjih izboljšav pa je podpora za namizne aplikacije v Windows (samo za Windows). Z uporabo .NET Core 3.0 SDK Windows Desktop Component lahko prenesete aplikacije Windows Forms in Windows Presentation Foundation (WPF). Za jasno sliko: Windows namizne komponente so podprte in vključene samo v Windows.

Naslov za prenos SDK:Prijava do hiperpovezave je vidna.

Povezave za predstavitev funkcij .NET Core:

Prijava do hiperpovezave je vidna.
Prijava do hiperpovezave je vidna.

Značilnosti vključujejo naslednje:

  • Uporabite C# za izdelavo bogatih, interaktivnih spletnih aplikacij za odjemalce.
  • Uporabite gRPC za ustvarjanje visokozmogljivih backend storitev.
  • SignalR zdaj podpira samodejno ponovno povezavo in tokove med odjemalcem in strežnikom.
  • Uporabite dokumentacijo OpenAPI za generiranje močno tipizirane kode odjemalcev za spletne API-je.
  • Usmerjanje končnih točk je integrirano skozi ogrodje.
  • Kestrel ima privzeto omogočen HTTP/2.
  • Integriran spletni API in podpora za enostransko avtentikacijo aplikacij.
  • Podprti so certifikati in Kerberos avtentikacija.
  • Integrirajte novi serializator System.Text.Json.
  • Novo univerzalno gostovanje vzpostavlja skupne upravljane storitve, kot so vbrizgavanje odvisnosti, konfiguracija in beleženje.
  • Nova predloga za delavske storitve za gradnjo dolgoročnih storitev.
  • Novi EventCounterji se ustvarjajo za zahteve na sekundo, skupne, trenutne in neuspešne zahteve.
  • Zagonske napake, gostovane v IIS, se zdaj poročajo v Windows Event Log.
  • Zahtevajte integracijo cevovodov System.IO.Pipelines.
  • Izboljšave zmogljivosti v celotnem tehnološkem skladu.

Ustvarimo nov .NET Core 3.0 konzolni projekt z VS 2019, kot je prikazano na spodnji sliki:



Če se sklicujemo na paket Newtonsoft.Json, napišite nekaj vrstic kode, kot sledi:


Z desnim klikom na VS Regenerate odpremo mapo zabojnikov projekta in ugotovimo, da bo ustvarjenih več datotek, vključno z :demo1.exe in Newtonsoft.Json.dll datotekami.



Objavite izvršljivo datoteko z eno datoteko

Metoda 1:

V mapi projekta zaženite naslednji ukaz:



Odpremo mapo C:\Users\itsvse_pc\source\repos\demo1\demo1\bin\Debug\netcoreapp3.0\win10-x64 in ugotovimo, da je ustvarjenih veliko dll datotek in obstaja mapa za objavo.

Pojdi v mapo za objavo,Velikost demo1.exe za ogled je 66M, kar je enako kot vse datoteke zunaj mape, kot je prikazano na spodnji sliki:



Generirana ena sama izvedljiva datoteka dejansko vsebuje okolje, potrebno za izvajanje programa, in ne zahteva, da ciljni računalnik namesti SDK, slabost pa je, da bo velikost datoteke postala zelo velika.

Metoda 2:

Desni klik proti urejanju projektne datoteke in dodajanju konfiguracije vozlišča PublishSingleFile je koda naslednja:

Nato desni klik in gumb "Objavi".


Povezave do sestavljanja

.NET core 3.0 SDK vsebuje orodje, ki lahko zmanjša velikost vaše aplikacije z analizo IL in rezanjem neuporabljenih sestavov.

Samostojne aplikacije vključujejo vse, kar potrebujete za zagon kode brez potrebe po namestitvi .NET na glavni računalnik. Vendar pa aplikacija pogosto potrebuje le del ogrodja za delovanje, druge neuporabljene knjižnice pa je mogoče odstraniti.

.NET Core zdaj vključuje nastavitev, ki skenira IL vaše aplikacije z orodjem IL linker. To orodje bo zaznalo, katera koda je potrebna, in nato izrezalo neuporabljene knjižnice. To orodje lahko bistveno zmanjša velikost namestitve nekaterih aplikacij.

Za omogočanje tega orodja uporabite <PublishTrimmed> nastavitve v svojem projektu in objavite samostojno aplikacijo:

.NET Core CLI


Pravkar smo ustvarili 66M datoteko in po dodajanju konfiguracije,Povečal se je na 35M, s čimer se je zasedenost zmanjšala na 30M.

Obvezno razmislite o aplikacijah ali ogrodjih, ki uporabljajo refleksije ali sorodne dinamične funkcije (vključno z ASP.NET Core in WPF).Običajno poškodovani med rezanjemTa pokvarjenost nastane, ker povezovalec ni seznanjen s tem dinamičnim vedenjem in ne more določiti, kateri tipi okvirjev so potrebni za refleksijo。 Orodje IL linker je mogoče konfigurirati tako, da zazna to situacijo.

Najpomembneje je, da ga nanesete po rezanjuIzvedite teste


(Konec)






Prejšnji:Reši, da Ajax ne more dodeliti vrednosti zunanjim spremenljivkam
Naslednji:Jezik C je tako močan, v katerem jeziku je napisan?
Objavljeno 29. 9. 2019 09:30:44 |

Hvala, ker si delil
 Najemodajalec| Objavljeno 30. 10. 2019 09:14:15 |
Slika ReadyToRun
Izboljšati ga je mogoče tako, da aplikacijski nabor prevedeš v format ReadyToRun (R2R). Čas zagona NET Core aplikacije.

R2R je oblika predkompiliranega (AOT). R2R binarne datoteke izboljšajo zagonsko zmogljivost z zmanjšanjem količine dela, ki ga morajo prevajalniki v realnem času (JIT) opraviti ob nalaganju aplikacije. Binarna datoteka vsebuje izvorno kodo, podobno tisti, ki jo generira JIT. Vendar so R2R binarne datoteke večje, ker vsebujejo kodo vmesnega jezika (IL) (ki je v nekaterih primerih še vedno obvezna) in izvorno različico iste kode. R2R je na voljo le, če objavite samostojno aplikacijo, ki cilja na določeno okolje za izvajanje (RID), kot sta Linux x64 ali Windows x64.



Tukaj najprej pustimo komentar in <PublishTrimmed>nato dodamo<PublishReadyToRun>:

Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com