Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 33299|Svar: 2

[.NET Core] De nye .NET Core-funktioner frigiver en enkeltfil eksekverbar fil

[Kopier link]
Opslået den 28-9-2019 kl. 16:38:47 | | | |
For et par dage siden udgav Microsoft .NET Core 3.0, og en af de største forbedringer er understøttelse af Windows-skrivebordsapplikationer (kun Windows). Ved at bruge .NET Core 3.0 SDK Windows Desktop Component kan du porte Windows Forms og Windows Presentation Foundation (WPF) applikationer. For at være klar: Windows-skrivebordskomponenter understøttes og inkluderes kun på Windows.

SDK downloadadresse:Hyperlink-login er synlig.

Links til at introducere .NET Core-funktioner:

Hyperlink-login er synlig.
Hyperlink-login er synlig.

Funktioner inkluderer følgende:

  • Brug C# til at bygge rige, interaktive klient-webapps.
  • Brug gRPC til at skabe højtydende backend-tjenester.
  • SignalR understøtter nu automatisk genforbindelse og klient-til-server-flows.
  • Brug OpenAPI-dokumentation til at generere stærkt typet klientkode til web-API'er.
  • Endpoint-routing er integreret gennem frameworket.
  • Kestrel har HTTP/2 aktiveret som standard.
  • Integreret web-API og understøttelse af enkeltside-app-autentificering.
  • Certifikater og Kerberos-autentificering understøttes.
  • Integrer den nye System.Text.Json serializer.
  • Den nye universelle hosting opstiller fælles administrerede tjenester såsom afhængighedsindsprøjtning, konfiguration og logning.
  • En ny Worker Service-skabelon til opbygning af langsigtede tjenester.
  • Nye EventCounters oprettes for forespørgsler pr. sekund, totale, aktuelle og mislykkede forespørgsler.
  • Opstartsfejl, der hostes i IIS, rapporteres nu til Windows Event Log.
  • Anmod om pipeline-integration System.IO.Pipelines.
  • Ydelsesforbedringer på tværs af hele teknologistacken.

Lad os skabe et nyt .NET Core 3.0-konsolprojekt med VS 2019, som vist i figuren nedenfor:



Ved at referere til Newtonsoft.Json-pakken, skriv et par linjer kode som følger:


Vi højreklikker på VS Regenerate, åbner derefter projektets bin-mappe og ser, at flere filer vil blive genereret, inklusive :demo1.exe- og Newtonsoft.Json.dll-filer.



Udgiv en enkeltfil eksekverbar fil

Metode 1:

Kør følgende kommando i projektmappen:



Vi åbner mappen C:\Users\itsvse_pc\source\repos\demo1\demo1\bin\Debug\netcoreapp3.0\win10-x64, og vi vil opdage, at mange dll-filer bliver genereret, og der er en publicer-mappe.

Gå til publicer-mappen,Størrelsen på visnings-demo1.exe er 66M, hvilket er samme størrelse som alle filer uden for mappen, som vist i figuren nedenfor:



Den genererede enkelt-eksekverbare fil indeholder faktisk det miljø, der kræves for programmets eksekvering, og kræver ikke, at målcomputeren installerer SDK'en, og ulempen er, at filstørrelsen bliver meget stor.

Metode 2:

Højreklik vs. rediger projektfilen og tilføj PublishSingleFile-nodekonfigurationen, koden er som følger:

Højreklik derefter og klik på "Publicér"-knappen.


Samlingslinks

.NET core 3.0 SDK'en leveres med et værktøj, der kan reducere størrelsen på din app ved at analysere IL og klippe ubrugte assemblies.

Selvstændige apps indeholder alt, hvad du behøver for at køre kode uden at skulle installere .NET på din hovedcomputer. Dog behøver appen ofte kun en brøkdel af frameworket for at køre, og andre ubrugte biblioteker kan fjernes.

.NET Core inkluderer nu en indstilling, der scanner din apps IL ved hjælp af IL linker-værktøjet. Dette værktøj vil opdage, hvilken kode der er nødvendig, og derefter klippe ubrugte biblioteker. Dette værktøj kan markant reducere udrulningsstørrelsen på nogle applikationer.

For at aktivere dette værktøj skal du bruge <PublishTrimmed> indstillingerne i dit projekt og udgive en selvstændig app:

.NET Core CLI


Vi genererede bare en 66M-fil, og efter at have tilføjet konfigurationen,Den blev til 35 millioner, hvilket reducerede belægningen på 30 millioner

Sørg for at overveje applikationer eller frameworks, der bruger refleksioner eller relaterede dynamiske funktioner (herunder ASP.NET Core og WPF)Normalt beskadiget under skæringDenne korruption opstår, fordi linkeren ikke er klar over denne dynamiske adfærd og ikke kan afgøre, hvilke rammetyper der kræves for refleksion。 IL-linkværktøjet kan konfigureres til at opdage denne situation.

Vigtigst af alt, sørg for at påføre det efter skæringUdfør tests


(Slut)






Tidligere:Løs ajax og ikke kan tildele værdier til eksterne variable
Næste:C-sproget er så kraftfuldt, hvilket sprog er det skrevet på?
Opslået den 29-9-2019 09:30:44 |

Tak fordi du delte
 Udlejer| Opslået den 30-10-2019 09:14:15 |
ReadyToRun-billede
Den kan forbedres ved at kompilere applikationssættet til ReadyToRun (R2R)-formatet. Opstartstid for NET Core-applikationer.

R2R er en form for forudkompileret (AOT). R2R-binære filer forbedrer opstartsydelsen ved at reducere mængden af arbejde, som realtidskompilatorer (JIT) skal udføre, når applikationen indlæses. Binærfilen indeholder native kode, der ligner den, JIT vil generere. R2R-binære filer er dog større, fordi de indeholder mellemliggende sprogkode (IL) (hvilket stadig er påkrævet i nogle tilfælde) og en native version af samme kode. R2R er kun tilgængeligt, når du udgiver en selvstændig app, der retter sig mod et specifikt runtime-miljø (RID), såsom Linux x64 eller Windows x64.



Her efterlader vi først kommentaren og <PublishTrimmed>tilføjer <PublishReadyToRun>derefter:

Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com