Como reduzir o tamanho de um aplicativo C # independente do ambiente?

Neste artigo, vou compartilhar minha experiência sobre como reduzir o tamanho de um aplicativo C # independente de assembly em 2 a 4 vezes.





Atenção: A compactação do conteúdo do programa está disponível apenas para publicações independentes . E também todas as ações ocorrem no Visual Studio Preview 2019.





Se você está aqui para uma solução rápida, aqui está o que você precisa fazer

Em .csproject, adicione as seguintes linhas:





Modo perigoso: remove classes e métodos não utilizados. Existe o risco de o aplicativo parar de funcionar corretamente, portanto, é necessário testar todas as funções do aplicativo após a publicação.





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



Modo mais seguro: remove apenas conjuntos não utilizados.





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



Em seguida, clique com o botão direito do mouse no projeto → Publicar → Pasta → Concluir → Mostrar todas as configurações. Defina as seguintes configurações:





  • Modo de implantação: autossuficiente





  • T arget Runtime: win-x64 ou sua versão. (Deve corresponder à linha RuntimeIdentifier)





Expanda as opções de publicação de arquivo e marque as caixas em: Produzir arquivo único e Aparar montagens não utilizadas .





Clique no botão Publicar .






Tudo é igual, só com uma equipe

Modo perigoso:





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



Modo mais seguro:





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




Saiba mais sobre o que acontece por trás das configurações acima

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





Você pode ler mais sobre os testes neste artigo.





Documentação oficial da Microsoft








All Articles