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