Panduan untuk Membuat Rakitan Berdampingan

Panduan berikut membahas cara menulis rakitan COM atau Win32 Anda sendiri secara berdampingan. Anda mungkin tidak perlu membuat rakitan berdampingan Anda sendiri jika fungsionalitas yang diperlukan disediakan oleh salah satu rakitan berdampingan Microsoft yang didukung. Dalam hal ini, gunakan rakitan yang disediakan oleh Microsoft dan ikuti prosedur untuk menggunakan rakitan berdampingan dalam Menggunakan Aplikasi Terisolasi dan Rakitan Berdampingan.

Pertama, pertimbangkan apakah komponen Anda membuat kandidat yang cocok untuk perakitan berdampingan. Untuk informasi selengkapnya, lihat Haruskah Anda menyediakan komponen bersama sebagai rakitan berdampingan?

Untuk membuat perakitan berdampingan, ikuti panduan berikut:

  • Tentukan sumber daya mana yang akan disertakan dalam assembly. Perlu diingat bahwa perakitan terdiri dari satu atau beberapa file yang selalu disediakan untuk aplikasi dan pelanggan bersama-sama. Perakitan berfungsi sebagai unit dasar yang digunakan untuk penamaan, pengikatan, penerapan versi, penyebaran, dan konfigurasi default. Sebagai aturan umum, ketika tidak yakin tentang apakah dua sumber daya berada dalam perakitan yang sama, disarankan agar mereka ditulis untuk masuk ke rakitan terpisah. Biasanya, perakitan berdampingan terdiri dari satu DLL.
  • Buat manifes perakitan untuk perakitan. Manifes harus menjelaskan objek COM atau pustaka jenis di perakitan. Untuk informasi selengkapnya tentang apa yang harus ditulis ke dalam manifes perakitan, lihat manifes perakitan.
  • Evaluasi penggunaan objek ketika lebih dari satu versi assembly Anda dijalankan pada sistem. Tentukan apakah versi perakitan yang berbeda memerlukan struktur data terpisah, seperti file yang dipetakan memori, pipa bernama, pesan dan kelas Windows terdaftar, memori bersama, semaphores, mutex, dan driver perangkat keras. Struktur data apa pun yang digunakan di seluruh versi rakitan harus versi yang kompatibel dengan versi sebelumnya. Tentukan struktur data mana yang dapat digunakan di seluruh versi dan struktur data mana yang harus bersifat privat ke versi. Tentukan apakah struktur data bersama memerlukan objek sinkronisasi terpisah seperti semaphores dan mutex.
  • Tulis DLL Anda untuk bekerja dengan baik sebagai perakitan berdampingan dengan mematuhi pedoman dalam Menulis DLL untuk Rakitan Berdampingan.
  • Tulis sekumpulan file header dan fungsi pembantu untuk menyediakan cara mudah untuk membuat versi kunci registri yang berisi status perakitan. Rakitan biasanya menyimpan pengaturan statusnya dalam kunci registri. Pengaturan registri harus ditulis berdasarkan versi individual untuk mengisolasi beberapa versi rakitan yang dapat dijalankan secara bersamaan. Rancang rakitan berdampingan dan DLL Anda untuk menyimpan dan menangani status perakitan dengan benar selama skenario berbagi berdampingan. Ikuti panduan dalam Penulisan Penyimpanan Status untuk Rakitan Berdampingan.
  • Pengembang aplikasi yang menggunakan rakitan privat harus mengamankan direktori aplikasi. Jika aplikasi diinstal menggunakan Pemasang Windows, direktori aplikasi dapat diamankan dengan menggunakan tabel LockPermissions. Biasanya, sistem diberikan akses baca, tulis, dan eksekusi ke rakitan privat; semua proses lain hanya diberikan akses eksekusi dan baca.
  • Uji perakitan menggunakan skenario dengan berbagi berdampingan untuk memastikan bahwa itu adalah perakitan berdampingan yang valid. Penginstalan assembly yang berhasil tidak cukup untuk menjamin bahwa itu akan berfungsi seperti yang diharapkan.
  • Mengadopsi metode untuk penomoran pembaruan untuk assembly Anda. Setiap rakitan dikaitkan dengan nomor versi empat bagian. Bagian kiri ke kanan, utama, minor, build, dan revisi dipisahkan oleh titik. Ubah nomor utama atau minor rakitan untuk versi yang tidak kompatibel dengan versi yang lebih lama. Ubah hanya komponen build dan revisi untuk perubahan yang kompatibel dengan versi sebelumnya ke assembly. Misalnya, pengembang mungkin mengadopsi metode penomoran di mana semua nomor versi 1.0.0.* mengacu pada versi pembaruan ke assembly versi 1.0.0.0.