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