Penyebaran di Visual C++

Penginstalan aplikasi Anda di komputer selain komputer pengembangan Anda dikenal sebagai penyebaran. Saat Anda menyebarkan aplikasi Visual C++ ke komputer lain, Anda harus menginstal aplikasi dan file pustaka apa pun yang bergantung padanya. Visual Studio memungkinkan tiga cara untuk menyebarkan pustaka Visual 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 menyebarkan ulang pustaka yang disebarkan secara lokal sendiri untuk memperbaruinya. Penautan statis mengikat kode pustaka ke dalam aplikasi Anda. Anda harus mengkombinasikan ulang dan menyebarkan ulang aplikasi Anda untuk memanfaatkan pembaruan apa pun ke pustaka saat Anda menggunakan penautan statis.

Di Visual Studio 2015, pustaka Microsoft C Runtime direfaktorkan ke dalam komponen pustaka lokal khusus versi, dan pustaka Universal C Runtime baru yang 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 Windows\System32 direktori, atau untuk file pustaka 32-bit pada sistem x64, Windows\SysWow64 direktori . File pustaka yang disebarkan secara terpusat tersedia untuk aplikasi lain.

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

  • File paket yang dapat didistribusikan ulang. File-file ini adalah executable baris perintah yang berdiri sendiri yang berisi semua pustaka Visual C++ Redistributable dalam bentuk terkompresi. Paket Redistributable terbaru tersedia dari Microsoft Visual C++ Redistributable Unduhan Terbaru yang Didukung. 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 Visual C++ untuk arsitektur sistem tertentu. Misalnya, jika aplikasi Anda dibangun untuk x64, Anda dapat menggunakan vcredist_x64.exe paket untuk menginstal semua pustaka Visual C++ yang digunakan aplikasi Anda. Anda dapat memprogram alat penginstal aplikasi untuk menjalankan paket sebagai prasyarat sebelum menginstal aplikasi Anda.

Penyebaran pusat dengan menggunakan paket Redistributable memungkinkan Windows Update memperbarui pustaka Visual 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 pustaka mungkin tersebar di beberapa DLL tambahan, yang dikenal sebagai pustaka titik. Misalnya, beberapa fungsionalitas dalam pustaka standar yang dirilis di Visual Studio 2017 versi 15.6 ditambahkan ke dalam msvcp140_1.dll, untuk mempertahankan kompatibilitas ABI .msvcp140.dll Jika Anda menggunakan Visual Studio 2017 versi 15.6 (toolset 14.13) atau yang lebih baru, Anda mungkin perlu menyebarkan pustaka titik ini dan pustaka utama secara lokal. Pustaka titik terpisah ini akhirnya akan ditambahkan ke pustaka dasar, ketika ABI berubah.

Karena Microsoft tidak dapat memperbarui pustaka Visual 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 Visual 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 Visual C++ bergantung pada sistem. Untuk mendiagnosis masalah loader, gunakan depends.exe atau where.exe. Untuk informasi selengkapnya, lihat Urutan pencarian pustaka dynamic-link (Windows).

Baca juga

Menyebarkan aplikasi desktop
Penyebaran Universal CRT