Comment réduire la taille d'une application C# indépendante de l'environnement ?

Dans cet article, je partagerai mon expérience sur la façon de réduire de 2 à 4 fois la taille d'une application C # indépendante de l'assembly.





Attention : La compression du contenu du programme n'est disponible que pour les publications autonomes . De plus, toutes les actions ont lieu dans Visual Studio Preview 2019.





Si vous ĂŞtes ici pour une solution rapide, voici ce que vous devez faire

Dans .csproject, ajoutez les lignes suivantes :





Mode dangereux : supprime les classes et méthodes inutilisées. A un risque que l'application cesse de fonctionner correctement, il faut donc tester toutes les fonctions de l'application après la publication.





<PublishSingleFile>true</PublishSingleFile>
<SelfContained>true</SelfContained>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<PublishTrimmed>true</PublishTrimmed>
<TrimMode>Link</TrimMode>
      
      



Mode plus sûr : supprime uniquement les assemblages inutilisés.





<PublishSingleFile>true</PublishSingleFile>
<SelfContained>true</SelfContained>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<PublishTrimmed>true</PublishTrimmed>
<TrimMode>CopyUsed</TrimMode>
      
      



Cliquez ensuite avec le bouton droit sur le projet → Publier → Dossier → Terminer → Afficher tous les paramètres. DĂ©finissez les paramètres suivants :





  • Mode de dĂ©ploiement : autonome





  • T Arget DurĂ©e: win-x64 ou votre version. (Doit correspondre Ă  la ligne RuntimeIdentifier )





Développez les options de publication de fichier et cochez les cases sous : Produire un fichier unique et Couper les assemblages inutilisés .





Cliquez sur le bouton Publier .






Tout est pareil, seulement avec une équipe

Mode dangereux :





dotnet publish -c Release -r win10-x64 -p:PublishTrimmed=True -p:TrimMode=Link -p:PublishSingleFile=true --self-contained true
      
      



Mode plus sĂ»r :





dotnet publish -c Release -r win10-x64 -p:PublishTrimmed=True -p:TrimMode=CopyUsed -p:PublishSingleFile=true --self-contained true
      
      




En savoir plus sur ce qui se passe derrière les paramètres ci-dessus

3 , Visual Studio.





PublishTrimmed .





TrimMode . .





2 : CopyUsed (Assembly-level trimming) Link (Member-Level Trimming).





Assembly-level trimming — . , , , . 300 96 . ZIP 30.





Member-Level Trimming — . , .. - , , , , . , 300 86, - . , .





Vous pouvez en savoir plus sur les tests dans cet article.





Documentation officielle de Microsoft








All Articles