Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 33299|Antwort: 2

[.NET Core] Die neuen .NET Core-Funktionen veröffentlichen eine einzelne ausführbare Datei

[Link kopieren]
Veröffentlicht am 28.09.2019, 16:38:47 | | | |
Vor ein paar Tagen hat Microsoft .NET Core 3.0 veröffentlicht, und eine der größten Verbesserungen ist die Unterstützung für Windows-Desktop-Anwendungen (nur Windows). Durch die Verwendung des .NET Core 3.0 SDK Windows Desktop Component können Sie Windows Forms und Windows Presentation Foundation (WPF) Anwendungen portieren. Um das klarzustellen: Windows-Desktop-Komponenten werden nur unter Windows unterstützt und enthalten.

SDK-Downloadadresse:Der Hyperlink-Login ist sichtbar.

Links zur Einführung von .NET Core-Funktionen:

Der Hyperlink-Login ist sichtbar.
Der Hyperlink-Login ist sichtbar.

Zu den Merkmalen gehören Folgendes:

  • Nutze C#, um reichhaltige, interaktive Client-Webanwendungen zu erstellen.
  • Nutzen Sie gRPC, um leistungsstarke Backend-Services zu erstellen.
  • SignalR unterstützt nun automatische Wiederverbindung und Client-zu-Server-Flows.
  • Verwenden Sie die OpenAPI-Dokumentation, um stark typisierten Client-Code für Web-APIs zu generieren.
  • Endpunkt-Routing ist durch das Framework integriert.
  • Kestrel hat standardmäßig HTTP/2 aktiviert.
  • Integrierte Web-API und Unterstützung für einseitige App-Authentifizierung.
  • Zertifikate und Kerberos-Authentifizierung werden unterstützt.
  • Integriere den neuen System.Text.Json Serializer.
  • Das neue universelle Hosting richtet gemeinsame verwaltete Dienste wie Abhängigkeitsinjektion, Konfiguration und Logging ein.
  • Eine neue Worker Service-Vorlage zum Aufbau langfristiger Dienste.
  • Neue EventCounters werden für Anfragen pro Sekunde, gesamte, aktuelle und fehlgeschlagene Anfragen erstellt.
  • Startfehler, die in IIS gehostet werden, werden nun im Windows-Ereignisprotokoll gemeldet.
  • Pipeline-Integration System.IO.Pipelines anfordern.
  • Leistungsverbesserungen im gesamten Technologiestack.

Lassen Sie uns ein neues .NET Core 3.0-Konsolenprojekt mit VS 2019 erstellen, wie in der untenstehenden Abbildung gezeigt:



Beziehen Sie sich auf das Newtonsoft.Json-Paket und schreiben Sie einige Codezeilen wie folgt:


Wir klicken mit der rechten Maustaste auf VS Regenerate, öffnen dann das Bin-Verzeichnis des Projekts und stellen fest, dass mehrere Dateien generiert werden, darunter :demo1.exe und Newtonsoft.Json.dll Dateien.



Veröffentlichen Sie eine einzelne ausführbare Datei

Methode 1:

Führen Sie folgenden Befehl im Projektverzeichnis aus:



Wir öffnen den Ordner C:\Users\itsvse_pc\source\repos\demo1\demo1\bin\Debug\netcoreapp3.0\win10-x64, und wir stellen fest, dass viele DLL-Dateien generiert werden und es einen publish Ordner gibt.

Geh zum Publizieren-Ordner,Die Größe der Ansicht demo1.exe beträgt 66M, was der Größe aller Dateien außerhalb des Ordners entspricht, wie in der untenstehenden Abbildung dargestellt:



Die generierte einzelne ausführbare Datei enthält tatsächlich die für die Ausführung des Programms erforderliche Umgebung und erfordert nicht, dass der Zielcomputer das SDK installiert, wobei der Nachteil ist, dass die Dateigröße sehr groß wird.

Methode 2:

Rechtsklick statt Bearbeiten der Projektdatei und das Hinzufügen der PublishSingleFile-Knotenkonfiguration – der Code ist wie folgt:

Klicken Sie dann mit der rechten Maustaste und klicken Sie auf die Schaltfläche "Veröffentlichen".


Versammlungslinks

Das .NET Core 3.0 SDK enthält ein Tool, das die Größe Ihrer App durch Analyse von IL und Clipping ungenutzter Assemblies verringern kann.

Eigenständige Apps enthalten alles, was du brauchst, um Code auszuführen, ohne .NET auf deinem Hauptcomputer installieren zu müssen. Oft benötigt die App jedoch nur einen Bruchteil des Frameworks zum Laufen, und andere ungenutzte Bibliotheken können entfernt werden.

.NET Core enthält jetzt eine Einstellung, die die IL Ihrer App mit dem IL-Linker-Tool scannt. Dieses Tool erkennt, welcher Code benötigt wird, und schneidet ungenutzte Bibliotheken ab. Dieses Tool kann die Bereitstellungsgröße einiger Anwendungen erheblich reduzieren.

Um dieses Tool zu aktivieren, nutzen Sie die <PublishTrimmed> Einstellungen Ihres Projekts und veröffentlichen Sie eine eigenständige App:

.NET Core CLI


Wir haben gerade eine 66M-Datei generiert und nach dem Hinzufügen der Konfiguration,Sie wurde auf 35 Mio. gebaut, was die Auslastung auf 30 Mio. verringerte

Achten Sie darauf, Anwendungen oder Frameworks in Betracht zu ziehen, die Reflexionen oder verwandte dynamische Funktionen verwenden (einschließlich ASP.NET Core und WPF).Meistens beim Schneiden beschädigtDiese Beschädigung tritt auf, weil der Linker sich dieses dynamischen Verhaltens nicht bewusst ist und nicht bestimmen kann, welche Frame-Typen für die Reflexion benötigt werden。 Das IL-Linker-Tool kann so konfiguriert werden, dass es diese Situation erkennt.

Am wichtigsten ist, es nach dem Schneiden aufzutragenDurchführung von Tests


(Ende)






Vorhergehend:Löse, dass Ajax keine Werte externen Variablen zuweisen kann.
Nächster:Die C-Sprache ist so mächtig, in welcher Sprache ist sie geschrieben?
Veröffentlicht am 29.9.2019, 09:30:44 |

Danke fürs Teilen
 Vermieter| Veröffentlicht am 30.10.2019, 09:14:15 |
ReadyToRun-Bild
Sie kann verbessert werden, indem die Anwendungsmenge in das ReadyToRun (R2R)-Format kompiliert wird. Startzeit für die NET Core-Anwendung.

R2R ist eine Form von vorkompiliertem (AOT). R2R-Binärdateien verbessern die Startleistung, indem sie die Arbeitsmenge für Echtzeit-(JIT)-Compiler beim Laden der Anwendung reduzieren. Die Binärform enthält nativen Code, ähnlich wie JIT generiert. R2R-Binärdateien sind jedoch größer, da sie Intermediate Language (IL)-Code enthalten (der in manchen Fällen dennoch erforderlich ist) und eine native Version desselben Codes. R2R ist nur verfügbar, wenn man eine eigenständige App veröffentlicht, die auf eine bestimmte Laufzeitumgebung (RID) abzielt, wie z. B. Linux x64 oder Windows x64.



Hier hinterlassen wir zuerst den Kommentar und <PublishTrimmed>fügen dann hinzu<PublishReadyToRun>:

Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com