Panduan untuk Membuat Komponen untuk Eksekusi Berdampingan

Ikuti panduan umum ini untuk membuat aplikasi atau komponen terkelola yang dirancang untuk eksekusi berdampingan:

  • Mengikat identitas jenis ke versi file tertentu.

    Runtime bahasa umum mengikat identitas jenis ke versi file tertentu dengan menggunakan rakitan bernama kuat. Untuk membuat aplikasi atau komponen untuk eksekusi berdampingan, Anda harus memberi nama yang kuat pada semua rakitan. Ini menciptakan identitas jenis yang tepat dan memastikan bahwa resolusi jenis apa pun diarahkan ke file yang benar. Rakitan bernama kuat berisi informasi versi, budaya, dan penerbit yang digunakan runtime untuk menemukan file yang benar untuk memenuhi permintaan pengikatan.

  • Gunakan penyimpanan yang sadar versi.

    Runtime menggunakan cache perakitan global untuk menyediakan penyimpanan yang sadar versi. Cache rakitan global adalah struktur direktori sadar versi yang diinstal di setiap komputer yang menggunakan .NET Framework. Rakitan yang dipasang di cache rakitan global tidak ditimpa saat versi baru rakitan itu diinstal.

  • Buat aplikasi atau komponen yang berjalan secara terpisah.

    Aplikasi atau komponen yang berjalan dalam isolasi harus mengelola sumber daya untuk menghindari konflik ketika dua instans aplikasi atau komponen berjalan secara bersamaan. Aplikasi atau komponen juga harus menggunakan struktur file khusus versi.

Aplikasi dan Isolasi Komponen

Salah satu kunci untuk berhasil merancang aplikasi atau komponen untuk eksekusi berdampingan adalah isolasi. Aplikasi atau komponen harus mengelola semua sumber daya, terutama file I/O, secara terisolasi. Ikuti panduan ini untuk memastikan aplikasi atau komponen Anda berjalan secara terpisah:

  • Tulis ke registri dengan cara khusus versi. Simpan nilai dalam kumpulan atau kunci yang menunjukkan versi, dan jangan berbagi informasi atau status di seluruh versi komponen. Cara ini mencegah dua aplikasi atau komponen yang berjalan pada saat yang sama dari menimpa informasi.

  • Jadikan objek kernel bernama khusus versi sehingga kondisi balapan tidak terjadi. Misalnya, kondisi balapan terjadi ketika dua semaphore dari dua versi aplikasi yang sama menunggu satu sama lain.

  • Jadikan nama file dan direktori versi-sadar. Ini berarti bahwa struktur file harus bergantung pada informasi versi.

  • Buat akun dan grup pengguna dengan cara khusus versi. Akun pengguna dan grup yang dibuat oleh aplikasi harus diidentifikasi berdasarkan versi. Jangan berbagi akun pengguna dan grup antar versi aplikasi.

Menginstal dan Menghapus Versi

Saat merancang aplikasi untuk eksekusi berdampingan, ikuti panduan berikut tentang menginstal dan menghapus pemasangan versi:

  • Jangan hapus informasi dari registri yang mungkin diperlukan oleh aplikasi lain yang berjalan pada versi .NET Framework yang berbeda.

  • Jangan mengganti informasi dalam registri yang mungkin diperlukan oleh aplikasi lain yang berjalan pada versi .NET Framework yang berbeda.

  • Jangan batalkan pendaftaran komponen COM yang mungkin diperlukan oleh aplikasi lain yang berjalan pada versi .NET Framework yang berbeda.

  • Jangan ubah InprocServer32 atau entri registri lain untuk server COM yang sudah terdaftar.

  • Jangan hapus akun pengguna atau grup yang mungkin diperlukan oleh aplikasi lain yang berjalan pada versi .NET Framework yang berbeda.

  • Jangan tambahkan apa pun ke registri yang berisi jalur tidak berversi.

Nomor Versi File dan Nomor Versi Perakitan

Versi file adalah sumber daya versi Win32 yang tidak digunakan oleh runtime. Secara umum, Anda memperbarui versi file bahkan untuk pembaruan di tempat. Dua file yang identik dapat memiliki informasi versi file yang berbeda, dan dua file yang berbeda dapat memiliki informasi versi file yang sama.

Versi rakitan digunakan oleh runtime untuk pengikatan rakitan. Dua rakitan identik dengan nomor versi berbeda diperlakukan sebagai dua rakitan berbeda oleh runtime.

Alat Cache Perakitan Global (Gacutil.exe) memungkinkan Anda mengganti rakitan jika hanya nomor versi file yang lebih baru. Pemasang umumnya tidak menginstal melalui rakitan kecuali nomor versi rakitan lebih besar.

Lihat juga