¿Cómo reducir el tamaño de una aplicación de C # que es independiente del entorno?

En este artículo, compartiré mi experiencia sobre cómo reducir el tamaño de una aplicación de C # independiente del ensamblado de 2 a 4 veces.





Atención: la compresión del contenido del programa solo está disponible para publicaciones independientes . Y también todas las acciones tienen lugar en Visual Studio Preview 2019.





Si está aquí para obtener una solución rápida, esto es lo que debe hacer

En .csproject agregue las siguientes líneas:





Modo peligroso: elimina clases y métodos no utilizados. Tiene el riesgo de que la aplicación deje de funcionar correctamente, por lo que requiere probar todas las funciones de la aplicación después de la publicación.





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



Modo más seguro: solo elimina los ensamblajes no utilizados.





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



Luego haga clic derecho en el proyecto → Publicar → Carpeta → Finalizar → Mostrar todas las configuraciones. Establezca la siguiente configuración:





  • Modo de implementación: autónomo





  • T arget Runtime: win-x64 o su versión. (Debe coincidir con la línea RuntimeIdentifier)





Expanda las opciones de publicación de archivos y marque las casillas en: producir un solo archivo y recortar ensamblajes no utilizados .





Haga clic en el botón Publicar .






Todo es igual, solo que con equipo

Modo peligroso:





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



Modo más seguro:





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




Obtenga más información sobre lo que sucede detrás de la configuración anterior

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, - . , .





Puede leer más sobre las pruebas en este artículo.





Documentación oficial de Microsoft








All Articles