Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 33299|Répondre: 2

[.NET Core] Les nouvelles fonctionnalités de .NET Core publient un exécutable à fichier unique

[Copié le lien]
Publié le 28-09-2019 à 16:38:47 | | | |
Il y a quelques jours, Microsoft a lancé .NET Core 3.0, et l’une des plus grandes améliorations est la prise en charge des applications de bureau Windows (Windows uniquement). En utilisant le SDK Windows Desktop Component de .NET Core 3.0, vous pouvez porter des applications Windows Forms et Windows Presentation Foundation (WPF). Pour être clair, les composants de bureau Windows sont pris en charge et inclus uniquement sur Windows.

Adresse de téléchargement du SDK :La connexion hyperlientérée est visible.

Liens pour introduire les fonctionnalités de .NET Core :

La connexion hyperlientérée est visible.
La connexion hyperlientérée est visible.

Les caractéristiques incluent les suivantes :

  • Utilisez C# pour créer des applications web client riches et interactives.
  • Utilisez gRPC pour créer des services backend haute performance.
  • SignalR prend désormais en charge la reconnexion automatique et les flux client-serveur.
  • Utilisez la documentation OpenAPI pour générer un code client fortement typé pour les API Web.
  • Le routage des terminaux est intégré via le framework.
  • Kestrel a HTTP/2 activé par défaut.
  • API web intégrée et support de l’authentification d’applications à page unique.
  • Les certificats et l’authentification Kerberos sont pris en charge.
  • Intégrez le nouveau sérialiseur System.Text.Json.
  • Le nouvel hébergement universel met en place des services gérés courants tels que l’injection de dépendances, la configuration et la journalisation.
  • Un nouveau modèle de Service des Travailleurs pour construire des services à long terme.
  • De nouveaux EventCounters sont créés pour les requêtes par seconde, le total, les requêtes actuelles et les requêtes échouées.
  • Les erreurs de démarrage hébergées dans IIS sont désormais signalées dans le journal des événements Windows.
  • Demande d’intégration de pipeline System.IO.Pipelines.
  • Améliorations de performance sur toute la pile technologique.

Créons un nouveau projet console .NET Core 3.0 avec VS 2019, comme montré dans la figure ci-dessous :



En référence au paquet Newtonsoft.Json, écrivez quelques lignes de code, comme suit :


Nous faisons un clic droit sur VS Regenerate, puis ouvrons le répertoire bin du projet, et constatons que plusieurs fichiers seront générés, y compris :demo1.exe et Newtonsoft.Json.dll.



Publier un exécutable à fichier unique

Méthode 1 :

Exécutez la commande suivante dans le répertoire du projet :



Nous ouvrons le dossier C :\Users\itsvse_pc\source\repos\demo1\demo1\bin\Debug\netcoreapp3.0\win10-x64, et nous constaterons que beaucoup de fichiers dll sont générés et qu’il y a un dossier de publication.

Va dans le dossier de publication,La taille de la demo1.exe de visionnage est de 66M, ce qui correspond à la taille de tous les fichiers hors du dossier, comme montré dans la figure ci-dessous :



Le fichier exécutable unique généré contient en réalité l’environnement nécessaire à l’exécution du programme, et ne nécessite pas que l’ordinateur cible installe le SDK, et l’inconvénient est que la taille du fichier deviendra très grande.

Méthode 2 :

Faites un clic droit contre modifier le fichier projet et ajouter la configuration du nœud PublishSingleFile, le code est le suivant :

Puis faites un clic droit et cliquez sur le bouton « Publier ».


Liens d’assemblage

Le SDK .NET core 3.0 est livré avec un outil qui peut réduire la taille de votre application en analysant l’IL et en découpant des assemblages inutilisés.

Les applications autonomes incluent tout ce dont vous avez besoin pour faire tourner du code sans avoir à installer .NET sur votre ordinateur principal. Cependant, bien souvent, l’application n’a besoin que d’une fraction du framework pour fonctionner, et d’autres bibliothèques inutilisées peuvent être supprimées.

.NET Core inclut désormais un paramètre qui scanne l’IL de votre application à l’aide de l’outil de lien IL. Cet outil détectera le code nécessaire puis découpera les bibliothèques inutilisées. Cet outil peut réduire significativement la taille de déploiement de certaines applications.

Pour activer cet outil, utilisez les <PublishTrimmed> paramètres de votre projet et publiez une application autonome :

.NET Core CLI


Nous venons de générer un fichier 66M, et après avoir ajouté la configuration,Elle est devenue 35M, réduisant l’occupation de 30M

Veillez à considérer les applications ou frameworks utilisant des réflexions ou des fonctionnalités dynamiques associées (y compris ASP.NET Core et WPF).Généralement endommagé lors de la coupeCette corruption se produit parce que le linker n’est pas conscient de ce comportement dynamique et ne peut pas déterminer quels types de trames sont nécessaires à la réflexion。 L’outil de liaison IL peut être configuré pour détecter cette situation.

Le plus important, c’est de bien l’appliquer après la coupeEffectuer des tests


(Fin)






Précédent:Résoudre le fait qu’ajax ne puisse pas attribuer de valeurs à des variables externes
Prochain:Le langage C est tellement puissant, dans quelle langue est-il écrit ?
Publié le 29-09-2019 à 09:30:44 |

Merci de partager
 Propriétaire| Publié le 30-10-2019 à 09:14:15 |
Image ReadyToRun
Il peut être amélioré en compilant l’ensemble d’applications dans le format ReadyToRun (R2R). C’est le moment du démarrage de l’application NET Core.

R2R est une forme de précompilé (AOT). Les binaires R2R améliorent les performances au démarrage en réduisant la charge de travail que les compilateurs temps réel (JIT) doivent effectuer lors du chargement de l’application. Le binaire contient un code natif similaire à ce que JIT va générer. Cependant, les binaires R2R sont plus volumineux car ils contiennent du code de langage intermédiaire (IL) (qui reste nécessaire dans certains cas) et une version native du même code. R2R n’est disponible que lorsque vous publiez une application autonome ciblant un environnement d’exécution spécifique (RID), comme Linux x64 ou Windows x64.



Ici, nous laissons d’abord le commentaire puis <PublishTrimmed>ajoutons <PublishReadyToRun>:

Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com