Bagaimana cara mengurangi ukuran aplikasi C # yang tidak bergantung pada lingkungan?

Pada artikel ini, saya akan membagikan pengalaman saya tentang cara mengecilkan ukuran aplikasi C# assembly-independen sebanyak 2 - 4 kali.





Perhatian: Kompresi konten program hanya tersedia untuk publikasi mandiri . Dan juga semua tindakan terjadi di Visual Studio Preview 2019.





Jika Anda di sini untuk perbaikan cepat, inilah yang perlu Anda lakukan

Di .csproject tambahkan baris berikut:





Mode berbahaya: menghapus kelas dan metode yang tidak digunakan. Memiliki risiko aplikasi akan berhenti bekerja dengan benar, oleh karena itu diperlukan pengujian semua fungsi aplikasi setelah dipublikasikan.





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



Mode lebih aman: hanya menghapus rakitan yang tidak digunakan.





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



Kemudian klik kanan pada proyek → Publikasikan → Folder → Selesai → Tampilkan Semua Pengaturan. Tetapkan pengaturan berikut:





  • Mode Penerapan: Mandiri





  • T arget Runtime: win-x64 atau versi. (Harus cocok dengan baris RuntimeIdentifier )





Perluas Opsi publikasi file dan centang kotak di bawah: Produce single file and Trim unused assemblies .





Klik tombol Publikasikan .






Semuanya sama, hanya dengan tim

Modus Berbahaya:





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



Modus Lebih Aman:





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




Pelajari lebih lanjut tentang apa yang terjadi di balik pengaturan di atas

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





Anda dapat membaca lebih lanjut tentang tes di artikel ini.





Dokumentasi resmi dari Microsoft








All Articles