Bagikan melalui


Mendaftarkan Rakitan dengan COM

Anda dapat menjalankan alat baris perintah yang disebut Assembly Registration Tool (Regasm.exe) untuk mendaftarkan atau membatalkan pendaftaran assembly untuk digunakan dengan COM. Regasm.exe menambahkan informasi tentang kelas ke registri sistem sehingga klien COM dapat menggunakan kelas .NET Framework secara transparan. Kelas ini RegistrationServices menyediakan fungsionalitas yang setara.

Komponen terkelola harus terdaftar di registri Windows sebelum dapat diaktifkan dari klien COM. Tabel berikut ini memperlihatkan kunci yang biasanya Regasm.exe tambahkan ke registri Windows. (000000 menunjukkan nilai GUID aktual.)

GUID Deskripsi Kunci registri
CLSID Pengidentifikasi kelas HKEY_CLASSES_ROOT\CLSID\{000…000}
IID Pengidentifikasi antarmuka HKEY_CLASSES_ROOT\Interface\{000…000}
LIBID Pengidentifikasi perpustakaan HKEY_CLASSES_ROOT\TypeLib\{000…000}
ProgID Pengidentifikasi terprogram HKEY_CLASSES_ROOT\000…000

Di bawah kunci HKCR\CLSID\{0000…0000}, nilai default diatur ke ProgID kelas, dan dua nilai baru bernama, yaitu Kelas dan Majelis, ditambahkan. Runtime membaca nilai assembly dari registri dan meneruskannya ke resolver assembly Runtime. Resolver assembly mencoba menemukan assembly berdasarkan informasi seperti nama dan nomor versi. Agar penyelesai assembly dapat menemukan assembly, assembly harus berada di salah satu lokasi berikut:

  • Cache rakitan global (harus rakitan dengan nama kuat).

  • Di direktori aplikasi. Rakitan yang dimuat dari jalur aplikasi hanya dapat diakses oleh aplikasi tersebut.

  • Sepanjang jalur berkas yang ditentukan dengan pilihan /codebase untuk Regasm.exe.

Regasm.exe juga membuat kunci InProcServer32 di bawah HKCR\CLSID\{0000…0000}. Nilai default untuk kunci diatur ke nama DLL yang menginisialisasi runtime bahasa terpadu (Mscoree.dll).

Memeriksa Entri dalam Registry

Interop COM menyediakan implementasi pabrik kelas standar untuk membuat instans kelas .NET Framework apa pun. Klien dapat memanggil DllGetClassObject DLL terkelola untuk mendapatkan pabrik kelas dan membuat objek, seperti yang mereka lakukan dengan komponen COM lainnya.

Untuk subkunci InprocServer32, referensi ke Mscoree.dll muncul sebagai pengganti pustaka tipe COM tradisional untuk menunjukkan bahwa runtime bahasa umum .NET membuat objek terkelola.

Lihat juga