Delen via


Assembly's registreren bij COM

U kunt een opdrachtregelprogramma uitvoeren met de naam Assembly Registration Tool (Regasm.exe) om een assembly te registreren of de registratie ervan ongedaan te maken voor gebruik met COM. Regasm.exe voegt informatie over de klasse toe aan het systeemregister, zodat COM-clients de .NET Framework-klasse transparant kunnen gebruiken. De RegistrationServices klasse biedt de equivalente functionaliteit.

Een beheerd onderdeel moet worden geregistreerd in het Windows-register voordat het kan worden geactiveerd vanaf een COM-client. In de volgende tabel ziet u de sleutels die Regasm.exe doorgaans aan het Windows-register toevoegt. (000000 geeft de werkelijke GUID-waarde aan.)

GUID Beschrijving Registersleutel
CLSID Klasse-id HKEY_CLASSES_ROOT\CLSID\{000... 000}
IID Interface-id HKEY_CLASSES_ROOT\Interface\{000... 000}
LIBID Bibliotheek-id HKEY_CLASSES_ROOT\TypeLib\{000... 000}
Progid Programmatische id HKEY_CLASSES_ROOT\000... 000

Onder de HKCR\CLSID\{0000... 0000}-sleutel, de standaardwaarde is ingesteld op de ProgID van de klasse en er worden twee nieuwe benoemde waarden, Klasse en Assembly, toegevoegd. De runtime leest de assembly-waarde uit het register en geeft deze door aan de runtime assembly-resolver. De assembly-resolver probeert de assembly te vinden op basis van assemblygegevens zoals de naam en het versienummer. De assembly-resolver moet zich op een van de volgende locaties bevinden om een assembly te vinden:

  • De globale assemblycache (moet een sterk benoemde assembly zijn).

  • in de toepassingsmap. Assembly's die vanuit het toepassingspad worden geladen, zijn alleen toegankelijk vanuit die toepassing.

  • Langs een bestandspad dat is opgegeven met de optie /codebase om te Regasm.exe.

Regasm.exe maakt ook de Sleutel InProcServer32 onder de HKCR\CLSID\{0000... 0000} sleutel. De standaardwaarde voor de sleutel is ingesteld op de naam van het DLL-bestand waarmee de common language runtime (Mscoree.dll) wordt geïnitialiseerd.

Registervermeldingen onderzoeken

COM-interoperabiliteit biedt een standaard-klassefactory-implementatie voor het maken van een exemplaar van een .NET Framework-klasse. Clients kunnen DllGetClassObject aanroepen in het beheerde DLL-bestand om een klassefactory op te halen en objecten te maken, net zoals bij elk ander COM-onderdeel.

Voor de InprocServer32 subsleutel wordt een verwijzing naar Mscoree.dll weergegeven in plaats van een traditionele COM-typebibliotheek om aan te geven dat de algemene taalruntime het beheerde object maakt.

Zie ook