Memangkas penyebaran mandiri dan dapat dieksekusi

Model penyebaran yang bergantung pada kerangka kerja telah menjadi model penyebaran yang paling sukses sejak awal .NET. Dalam skenario ini, pengembang aplikasi hanya membundel aplikasi dan rakitan pihak ketiga dengan harapan bahwa pustaka runtime dan runtime .NET akan tersedia di komputer klien. Model penyebaran ini terus menjadi yang dominan dalam rilis .NET terbaru, namun, ada beberapa skenario di mana model yang bergantung pada kerangka kerja bukanlah pilihan terbaik. Alternatifnya adalah menerbitkan aplikasi mandiri, di mana pustaka runtime dan runtime .NET dibundel bersama dengan aplikasi dan rakitan pihak ketiga.

Model penyebaran trim-self-contained adalah versi khusus dari model penyebaran mandiri yang dioptimalkan untuk mengurangi ukuran penyebaran. Meminimalkan ukuran penyebaran adalah persyaratan penting untuk beberapa skenario sisi klien seperti aplikasi Blazor. Bergantung pada kompleksitas aplikasi, hanya subset rakitan kerangka kerja yang dirujuk, dan subset kode dalam setiap rakitan diperlukan untuk menjalankan aplikasi. Bagian pustaka yang tidak digunakan tidak perlu dan dapat dipangkas dari aplikasi paket.

Namun, ada risiko bahwa analisis build-time aplikasi dapat menyebabkan kegagalan pada waktu proses, karena tidak dapat menganalisis berbagai pola kode bermasalah dengan andal (sebagian besar berpusat pada penggunaan pantulan). Untuk mengurangi masalah ini, peringatan dihasilkan setiap kali pemangkas tidak dapat sepenuhnya menganalisis pola kode. Untuk informasi tentang arti peringatan pemangkasan dan cara mengatasinya, lihat Pengantar peringatan pemangkasan.

Catatan

  • Pemangkasan didukung penuh dalam .NET 6 dan versi yang lebih baru. Di .NET Core 3.1 dan .NET 5, pemangkasan adalah fitur eksperimental.
  • Pemangkasan hanya tersedia untuk aplikasi yang diterbitkan mandiri.

Komponen yang menyebabkan masalah pemangkasan

Peringatan

Tidak semua jenis proyek dapat dipangkas. Untuk informasi selengkapnya, lihat Ketidaksesuaian pemangkasan yang diketahui.

Kode apa pun yang menyebabkan tantangan analisis waktu build tidak cocok untuk pemangkasan. Beberapa pola pengkodian umum yang bermasalah saat digunakan oleh aplikasi yang berasal dari penggunaan pantulan yang tidak terbatas dan dependensi eksternal yang tidak terlihat pada waktu build. Contoh refleksi yang tidak terbatas adalah serializer warisan, seperti serialisasi XML, dan contoh dependensi eksternal yang tidak terlihat adalah COM bawaan. Untuk mengatasi peringatan pemangkasan di aplikasi Anda, lihat Pengantar peringatan pemangkasan, dan untuk membuat pustaka Anda kompatibel dengan pemangkasan, lihat Menyiapkan pustaka .NET untuk pemangkasan.

Mengaktifkan pemangkasan

  1. Tambahkan <PublishTrimmed>true</PublishTrimmed> ke file proyek Anda.

    Properti ini akan menghasilkan aplikasi yang dipangkas pada penerbitan mandiri. Ini juga menonaktifkan fitur yang tidak kompatibel trim dan menunjukkan peringatan kompatibilitas pemangkasan selama build.

    <PropertyGroup>
        <PublishTrimmed>true</PublishTrimmed>
    </PropertyGroup>
    
  2. Kemudian terbitkan aplikasi Anda menggunakan perintah terbitkan dotnet atau Visual Studio.

Menerbitkan dengan CLI

Contoh berikut menerbitkan aplikasi untuk Windows sebagai aplikasi mandiri yang dipangkas.

dotnet publish -r win-x64

Pemangkasan hanya didukung untuk aplikasi mandiri.

<PublishTrimmed> harus diatur dalam file proyek sehingga fitur yang tidak kompatibel trim dinonaktifkan selama dotnet build. Namun, Anda juga dapat mengatur opsi ini sebagai argumen ke dotnet publish:

dotnet publish -r win-x64 -p:PublishTrimmed=true

Untuk informasi selengkapnya, lihat Menerbitkan aplikasi .NET dengan .NET CLI.

Menerbitkan dengan Visual Studio

  1. Di Penjelajah Solusi, klik kanan proyek yang ingin Anda terbitkan dan pilih Terbitkan.

    Solution Explorer with a right-click menu highlighting the Publish option.

    Jika Anda belum memiliki profil penerbitan, ikuti instruksi untuk membuatnya dan pilih Jenis target folder .

  2. Pilih Tindakan>Lainnya Edit.

    Visual studio publish profile with edit button.

  3. Dalam dialog Pengaturan profil, atur opsi berikut:

    • Atur Mode penyebaran ke Mandiri.
    • Atur Runtime target ke platform yang ingin Anda terbitkan.
    • Pilih Pangkas kode yang tidak digunakan.

    Pilih Simpan untuk menyimpan pengaturan dan kembali ke dialog Terbitkan.

    Profile settings dialog with deployment mode, target runtime, and trim unused assemblies options highlighted.

  4. Pilih Terbitkan untuk memublikasikan aplikasi Anda yang dipangkas.

Untuk informasi selengkapnya, lihat Menerbitkan aplikasi .NET Core dengan Visual Studio.

Menerbitkan dengan Visual Studio untuk Mac

Visual Studio untuk Mac tidak menyediakan opsi untuk menerbitkan aplikasi Anda. Anda harus menerbitkan secara manual dengan mengikuti instruksi dari bagian Penerbitan dengan CLI . Untuk informasi selengkapnya, lihat Menerbitkan aplikasi .NET dengan .NET CLI.

Lihat juga