Mendistribusikan ulang komponen dengan menggunakan modul penggabungan

Penting

Di Visual Studio 2019 dan yang lebih baru, modul penggabungan untuk file Visual C++ Redistributable tidak digunakan lagi. Kami tidak menyarankan Anda menggunakannya untuk penyebaran aplikasi. Redistributable yang diinstal menggunakan modul Gabungkan tidak dapat diperbarui oleh Windows Update karena mekanisme deteksi tergantung pada mengetahui detail paket penginstalan. Paket Visual C++ Redistributable dikenal untuk setiap rilis, tetapi paket yang menggunakan MSM dihasilkan pengguna. Microsoft tidak dapat mengetahui detail paket yang dihasilkan pengguna. Sebagai gantinya, kami sarankan Anda menggunakan penyebaran terpusat dari paket Visual C++ Redistributable. Penyebaran pusat menginstal file Redistributable di folder Windows %SYSTEMROOT%\system32\ untuk digunakan oleh semua aplikasi dan pengguna. Penyebaran pusat oleh paket Redistributable memungkinkan Microsoft untuk melayani file pustaka runtime secara independen. Dan, penghapusan instalan aplikasi Anda tidak dapat merusak aplikasi lain yang juga menggunakan penyebaran pusat. Saat Anda menggunakan paket Redistributable untuk penyebaran pusat, Anda tidak bertanggung jawab untuk melacak dan memperbarui pustaka runtime sebagai bagian dari pemeliharaan aplikasi Anda: Layanan Pembaruan Microsoft memperbarui pustaka ini untuk Anda. Jika tidak, pembaruan ke file pustaka runtime mengharuskan Anda memperbarui dan menyebarkan ulang alat penginstal Anda .msi . Aplikasi Anda mungkin rentan terhadap bug atau masalah keamanan hingga Anda melakukannya.

Visual Studio menyertakan modul penggabungan (.msm file) untuk setiap komponen Visual C++ yang dilisensikan untuk didistribusikan ulang dengan aplikasi. Ada versi terpisah dari modul penggabungan untuk setiap platform target. Ketika modul penggabungan dikompilasi ke dalam file penyiapan Penginstal Windows, modul ini memungkinkan penyebaran file Visual C++ Redistributable ke platform tertentu. Anda tidak dapat menyertakan modul penggabungan untuk versi DLL yang sama yang berbeda dalam satu alat penginstal. Dalam file penyiapan alat penginstal Anda, tentukan bahwa modul penggabungan adalah prasyarat untuk aplikasi Anda.

Anda dapat menggunakan modul penggabungan untuk penyebaran pusat atau penyebaran lokal. Pengguna tidak dapat menginstal file yang disebarkan secara terpusat kecuali mereka memiliki hak administrator. Penyebaran lokal dapat memungkinkan non-administrator untuk menginstal dan menjalankan aplikasi Anda, tetapi dengan biaya layanan independen.

Layanan penginstalan melaporkan kesalahan jika Anda mencoba penyebaran terpusat modul penggabungan yang lebih lama melalui pustaka yang lebih baru yang ada. Anda harus menulis penyiapan alat penginstal Anda untuk menangani kegagalan ini dengan anggun dan tidak menampilkan pesan kesalahan. Kode Anda masih dapat menyebarkan dan berjalan dengan sukses meskipun kegagalan ini. Untuk informasi selengkapnya, lihat Kompatibilitas biner C++ antara versi Visual Studio.

Jika Anda menyebarkan kode hanya sebagai alat .msi penginstal, kami sarankan Anda tidak menyertakan modul penggabungan di alat penginstal. Sebagai gantinya, laporkan kegagalan kepada pengguna saat pustaka Redistributable yang diperlukan tidak ditemukan. Dalam dialog kegagalan, sertakan instruksi tentang cara menemukan dan menginstal paket Redistributable terbaru. Untuk informasi selengkapnya dan tautan ke paket Redistributable, lihat Unduhan Visual C++ terbaru yang didukung.

Paket Redistributable terbaru dan modul penggabungan kompatibel dengan kode yang dibuat menggunakan Visual Studio 2015 dan yang lebih baru. Kode yang dibangun oleh versi Visual Studio sebelum 2015 memerlukan paket Redistributable terpisah.

Kapan menggunakan modul penggabungan

Modul penggabungan hanya sesuai dalam keadaan terbatas:

  • Anda tidak dapat menginstal atau memerlukan paket Redistributable terpisah karena alasan kebijakan,
  • Kode Anda memerlukan versi pustaka tertentu yang kompatibel dengan bug,
  • Kode Anda hanya menargetkan satu platform, dan Anda tidak memiliki dependensi pada lebih dari satu versi DLL,
  • Anda berniat untuk melayani kode yang disebarkan secara berkala, sehingga pustaka tetap diperbarui.

Saat menggunakan modul penggabungan, Anda harus melacak dan secara teratur melayani aplikasi Anda dengan pembaruan pustaka. Jika tidak, Anda akhirnya memaksa klien Anda untuk memilih antara menjalankan kode Anda atau tetap aman.

Tempat menemukan file modul penggabungan

Di Visual Studio 2022 dan 2019, file modul penggabungan adalah bagian dari komponen opsional yang dapat diinstal bernama MSM yang Dapat Didistribusikan Ulang versi> C++ <di Alat Penginstal Visual Studio. Modul penggabungan diinstal secara default sebagai bagian dari penginstalan C++ di Visual Studio 2017 dan Visual Studio 2015. Saat diinstal di Visual Studio 2022, Anda akan menemukan modul penggabungan Visual C++ Redistributable di %VCINSTALLDIR%Redist\MSVC\v143\MergeModules. Dalam versi terbaru Visual Studio 2019, modul penggabungan berada di %VCINSTALLDIR%Redist\MSVC\v142\MergeModules. Di Visual Studio 2019 dan Visual Studio 2017, visual Studio 2017 juga ditemukan di %VCToolsRedistDir%MergeModules. Di Visual Studio 2015, mereka ditemukan di Program Files [(x86)]\Common Files\Merge Modules. Untuk informasi selengkapnya dan tautan ke daftar modul penggabungan Redistributable, lihat Mendistribusikan ulang file Visual C++.

Baca juga

Mendistribusikan ulang file Visual C++