Bagikan melalui


Penyebaran di Microsoft C++

Penginstalan aplikasi Anda di komputer selain komputer pengembangan Anda dikenal sebagai penyebaran. Saat Anda menyebarkan aplikasi Microsoft C++ ke komputer lain, Anda harus menginstal aplikasi dan file pustaka apa pun yang bergantung padanya. Visual Studio memungkinkan tiga cara untuk menyebarkan pustaka Microsoft C++ bersama dengan aplikasi Anda: penyebaran pusat, penyebaran lokal, dan penautan statis. Penyebaran pusat menempatkan file pustaka di bawah direktori Windows, di mana semua aplikasi dapat mengaksesnya secara otomatis. Penyebaran lokal menempatkan file pustaka di direktori yang sama dengan aplikasi Anda. Anda harus melakukan penyebaran ulang pustaka yang sebelumnya disebarkan secara lokal oleh Anda sendiri untuk memperbaruinya. Penautan statis mengikat kode pustaka ke dalam aplikasi Anda. Anda harus mengompilasi ulang dan melakukan penerapan ulang aplikasi Anda agar dapat memanfaatkan pembaruan apa pun ke pustaka saat Anda menggunakan penautan statis.

Di Visual Studio 2015, pustaka Microsoft C Runtime direstruktur menjadi pustaka lokal yang bersifat khusus untuk versi tertentu, dan pustaka Universal C Runtime yang baru sekarang menjadi bagian dari Windows. Untuk detail tentang penyebaran Universal CRT, lihat Penyebaran Universal CRT.

Penyebaran pusat

Dalam penyebaran pusat, file DLL pustaka diinstal di direktori Windows\System32, atau untuk file pustaka 32-bit di sistem x64, di direktori Windows\SysWow64. File pustaka yang disebarkan secara terpusat tersedia untuk aplikasi lain.

Untuk menyebarkan pustaka Microsoft C++ secara terpusat, Anda dapat menggunakan salah satu dari dua sumber ini untuk menginstal file:

  • File paket yang dapat didistribusikan ulang. Berkas-berkas ini adalah eksekusi baris perintah yang berdiri sendiri dan berisi semua pustaka Visual C++ Redistributable dalam bentuk terkompresi. Paket Redistributable terbaru tersedia dari Unduhan Terbaru yang Didukung Microsoft Visual C++ Redistributable. Saat Anda menggunakan paket Redistributable untuk penyebaran pusat, Windows Update dapat melayani pustaka secara independen.

  • Modul penggabungan yang dapat didistribusikan ulang (.msm file), yang dapat Anda sertakan dalam file Windows Installer (.msi) aplikasi Anda. Metode ini tidak digunakan lagi karena pustaka yang disebarkan dengan cara ini tidak dapat diperbarui secara otomatis oleh Windows Update. Untuk informasi selengkapnya, lihat Mendistribusikan ulang dengan menggunakan modul penggabungan.

File paket Redistributable menginstal semua pustaka Microsoft C++ untuk arsitektur sistem tertentu. Misalnya, jika aplikasi Anda dibuat untuk x64, Anda dapat menggunakan vcredist_x64.exe paket untuk menginstal semua pustaka Microsoft C++ yang digunakan aplikasi Anda. Anda dapat memprogram alat penginstal aplikasi untuk menjalankan paket sebagai prasyarat sebelum menginstal aplikasi Anda.

Penyebaran terpusat dengan menggunakan paket Redistributable memungkinkan Windows Update memperbarui pustaka Microsoft C++ secara otomatis. Untuk keamanan dan fungsionalitas berkelanjutan, kami sarankan Anda menggunakan DLL pustaka di aplikasi Anda alih-alih pustaka statis, dan menggunakan paket Redistributable dan penyebaran pusat alih-alih penyebaran lokal.

Penyebaran lokal

Dalam penyebaran lokal, file pustaka diinstal di folder aplikasi Anda bersama dengan file yang dapat dieksekusi. Versi pustaka Visual C++ Redistributable yang berbeda dapat diinstal di folder yang sama karena nama file setiap versi menyertakan nomor versinya. Misalnya, versi 12 dari pustaka runtime C++ adalah msvcp120.dll, dan versi 14 adalah msvcp140.dll.

Ekspansi ke perpustakaan mungkin tersebar di beberapa DLL tambahan, yang dikenal sebagai dot libraries. Misalnya, beberapa fungsionalitas dalam perpustakaan standar yang dirilis di Visual Studio 2017 versi 15.6 ditambahkan ke dalam msvcp140_1.dll untuk mempertahankan kompatibilitas ABI dari msvcp140.dll. Jika Anda menggunakan Visual Studio 2017 versi 15.6 (toolset 14.13) atau yang lebih baru, Anda mungkin perlu mendistribusikan pustaka dot ini dan pustaka utama secara lokal. Pustaka dot terpisah ini pada akhirnya akan ditambahkan ke pustaka dasar ketika ABI mengalami perubahan.

Karena Microsoft tidak dapat memperbarui pustaka Microsoft C++ yang disebarkan secara lokal secara otomatis, kami tidak merekomendasikan penyebaran lokal pustaka ini. Jika Anda memutuskan untuk menggunakan penyebaran lokal pustaka Redistributable, kami sarankan Anda menerapkan metode Anda sendiri untuk memperbarui pustaka yang disebarkan secara lokal secara otomatis.

Penautan statis

Selain pustaka yang ditautkan secara dinamis, Visual Studio menyediakan sebagian besar pustakanya sebagai pustaka statis. Anda dapat secara statis menautkan pustaka statis ke aplikasi Anda, yaitu, menautkan kode objek pustaka langsung ke dalam aplikasi. Penautan statis membuat satu biner tanpa dependensi DLL, sehingga Anda tidak perlu menyebarkan file pustaka Microsoft C++ secara terpisah. Namun, kami tidak merekomendasikan pendekatan ini karena pustaka yang ditautkan secara statis tidak dapat diperbarui. Untuk memperbarui pustaka tertaut saat menggunakan penautan statis, Anda harus mengkombinasikan ulang dan menyebarkan ulang aplikasi Anda.

Memecahkan masalah penyebaran

Urutan beban pustaka Microsoft C++ bergantung pada sistem. Untuk mendiagnosis masalah loader, gunakan depends.exe atau where.exe. Untuk informasi selengkapnya, lihat Urutan pencarian pustaka dynamic-link (Windows).

Lihat juga

Menyebarkan aplikasi desktop
Penyebaran Universal CRT