Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 33299|Antwoord: 2

[.NET Core] De nieuwe .NET Core-functies brengen een uitvoerbaar bestand uit met één bestand

[Link kopiëren]
Geplaatst op 28-9-2019 16:38:47 | | | |
Een paar dagen geleden bracht Microsoft .NET Core 3.0 uit, en een van de grootste verbeteringen is ondersteuning voor Windows-desktopapplicaties (alleen Windows). Door gebruik te maken van de .NET Core 3.0 SDK Windows Desktop Component kun je Windows Forms en Windows Presentation Foundation (WPF) applicaties porten. Om duidelijk te zijn: Windows-desktopcomponenten worden alleen ondersteund en inbegrepen op Windows.

SDK downloadadres:De hyperlink-login is zichtbaar.

Links om .NET Core-functies te introduceren:

De hyperlink-login is zichtbaar.
De hyperlink-login is zichtbaar.

Kenmerken zijn onder andere:

  • Gebruik C# om rijke, interactieve client-webapps te bouwen.
  • Gebruik gRPC om high-performance backend-diensten te creëren.
  • SignalR ondersteunt nu automatische herverbinding en client-naar-server stromen.
  • Gebruik OpenAPI-documentatie om sterk getypeerde clientcode voor web-API's te genereren.
  • Endpoint-routering is geïntegreerd via het framework.
  • Kestrel heeft standaard HTTP/2 ingeschakeld.
  • Geïntegreerde web-API en ondersteuning voor single-page app-authenticatie.
  • Certificaten en Kerberos-authenticatie worden ondersteund.
  • Integreer de nieuwe System.Text.Json serialiseerder.
  • De nieuwe universele hosting zet gemeenschappelijke beheerde diensten op, zoals afhankelijkheidsinjectie, configuratie en logging.
  • Een nieuw Worker Service-sjabloon voor het bouwen van langetermijnservices.
  • Nieuwe EventCounters worden aangemaakt voor verzoeken per seconde, totaal, actuele en mislukte verzoeken.
  • Opstartfouten die in IIS worden gehost, worden nu gerapporteerd aan het Windows Event Log.
  • Vraag om pipeline-integratie System.IO.Pipelines.
  • Prestatieverbeteringen over de hele technologiestack.

Laten we een nieuw .NET Core 3.0 consoleproject maken met VS 2019, zoals weergegeven in de onderstaande figuur:



Met verwijzing naar het Newtonsoft.Json-pakket, schrijf een paar regels code, als volgt:


We klikken met de rechtermuisknop op VS Regenerate, openen vervolgens de bin-map van het project, en zien dat er meerdere bestanden worden gegenereerd, waaronder :demo1.exe en Newtonsoft.Json.dll bestanden.



Publiceer een uitvoerbaar bestand met één bestand

Methode 1:

Voer het volgende commando uit in de projectmap:



We openen de map C:\Users\itsvse_pc\source\repos\demo1\demo1\bin\Debug\netcoreapp3.0\win10-x64, en we zien dat er veel dll-bestanden worden gegenereerd en dat er een publiceermap is.

Ga naar de publiceermap,De grootte van de weergave demo1.exe is 66M, wat dezelfde grootte is als alle bestanden buiten de map, zoals getoond in de onderstaande figuur:



Het gegenereerde enkele uitvoerbare bestand bevat daadwerkelijk de omgeving die nodig is voor de uitvoering van het programma, en vereist niet dat de doelcomputer de SDK installeert, en het nadeel is dat de bestandsgrootte erg groot wordt.

Methode 2:

Rechtsklik versus het projectbestand bewerken en de PublishSingleFile nodeconfiguratie toevoegen, de code is als volgt:

Klik dan met de rechtermuisknop en klik op de knop "Publiceren".


Assembly-links

De .NET core 3.0 SDK wordt geleverd met een tool die de grootte van je app kan verkleinen door IL te analyseren en ongebruikte assemblies te clippen.

Zelfstandige apps bevatten alles wat je nodig hebt om code uit te voeren zonder .NET op je hoofdcomputer te hoeven installeren. Vaak heeft de app echter slechts een fractie van het framework nodig om te draaien, en kunnen andere ongebruikte bibliotheken worden verwijderd.

.NET Core bevat nu een instelling die de IL van je app scant met de IL-linkertool. Deze tool detecteert welke code nodig is en knipt vervolgens ongebruikte bibliotheken af. Deze tool kan de implementatiegrootte van sommige applicaties aanzienlijk verkleinen.

Om deze tool in te schakelen, gebruik je de <PublishTrimmed> instellingen in je project en publiceer je een zelfstandige app:

.NET Core CLI


We hebben net een bestand van 66M gegenereerd, en na het toevoegen van de configuratie,Het werd 35M, waardoor de bezetting tot 30 miljoen werd verminderd

Zorg ervoor dat je applicaties of frameworks overweegt die reflecties of gerelateerde dynamische functies gebruiken (waaronder ASP.NET Core en WPF)Meestal beschadigd tijdens het snijdenDeze corruptie ontstaat omdat de linker zich niet bewust is van dit dynamische gedrag en niet kan bepalen welke frametypes nodig zijn voor reflectie。 De IL-linkertool kan worden ingesteld om deze situatie te detecteren.

Het belangrijkste is dat je het na het snijden aanbrengtVoer tests uit


(Einde)






Vorig:Los op dat ajax geen waarden kan toewijzen aan externe variabelen
Volgend:De C-taal is zo krachtig, in welke taal is het geschreven?
Geplaatst op 29-9-2019 09:30:44 |

Bedankt voor het delen
 Huisbaas| Geplaatst op 30-10-2019 09:14:15 |
ReadyToRun-afbeelding
Het kan worden verbeterd door de applicatieset te compileren in het ReadyToRun (R2R)-formaat. Opstarttijd voor de NET Core-applicatie.

R2R is een vorm van pre-gecompileerd (AOT). R2R-binaries verbeteren de opstartprestaties door de hoeveelheid werk die real-time (JIT) compilers moeten verrichten wanneer de applicatie laadt, te verminderen. De binaire bevat native code die vergelijkbaar is met wat JIT zal genereren. R2R-binaries zijn echter groter omdat ze intermediate language (IL) code bevatten (wat in sommige gevallen nog steeds vereist is) en een native versie van dezelfde code. R2R is alleen beschikbaar wanneer je een zelfstandige app publiceert die zich richt op een specifieke runtime-omgeving (RID), zoals Linux x64 of Windows x64.



Hier laten we eerst de reactie achter en <PublishTrimmed>voegen dan toe<PublishReadyToRun>:

Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com