Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Note
Den här artikeln beskriver .NET Framework COM-interopvägledning som använder det äldre verktyget för sammansättningsregistrering (Regasm.exe), den globala sammansättningscache och registerbaserad COM-registrering. För moderna .NET använder du COM-källgenereringen eller API:etComWrappers. Mer information finns i COM-interop.
Du kan köra ett kommandoradsverktyg med namnet Assembly Registration Tool (Regasm.exe) för att registrera eller avregistrera en .NET Framework-sammansättning för användning med COM. Regasm.exe lägger till information om klassen i systemregistret så att COM-klienter kan använda .NET Framework-klassen transparent. Klassen RegistrationServices tillhandahåller motsvarande funktioner.
För .NET Framework måste en hanterad komponent registreras i Windows-registret innan den kan aktiveras från en COM-klient. I följande tabell visas de nycklar som Regasm.exe vanligtvis lägger till i Windows-registret. (000000 anger det faktiska GUID-värdet.)
| GUID | Beskrivning | Registernyckel |
|---|---|---|
| CLSID | Klassidentifierare | HKEY_CLASSES_ROOT\CLSID\{000…000} |
| IID | Gränssnittsidentifierare | HKEY_CLASSES_ROOT\Interface\{000…000} |
| LIBID | Biblioteksidentifierare | HKEY_CLASSES_ROOT\TypeLib\{000…000} |
| ProgID | Programmatisk identifierare | HKEY_CLASSES_ROOT\000…000 |
Under the HKCR\CLSID\{0000… 0000}-nyckel, standardvärdet är inställt på klassens ProgID och två nya namngivna värden, klass och sammansättning, läggs till. Körningstiden läser Assembly-värdet från registret och skickar det vidare till körningstids assembly-upplösare. Sammansättningsmatcharen försöker hitta sammansättningen baserat på sammansättningsinformation som namn och versionsnummer. För att sammansättningslösaren ska kunna hitta en sammansättning måste sammansättningen finnas på någon av följande platser:
Den globala sammansättningscachen (måste vara en starkt namngiven sammansättning).
I programkatalogen. Sammansättningar som läses in från programsökvägen är endast tillgängliga från programmet.
På en filsökväg som anges med alternativet /codebase till Regasm.exe.
Regasm.exe skapar även InProcServer32-nyckeln under HKCR\CLSID\{0000... 0000} nyckel. Standardvärdet för nyckeln är inställt på namnet på den DLL som initierar common language runtime (Mscoree.dll).
Granska poster i registret
COM-interop i .NET Framework tillhandahåller en fabriksimplementering av standardklass för att skapa en instans av valfri .NET Framework-klass. Klienter kan anropa DllGetClassObject den hanterade DLL:en för att hämta en klassfabrik och skapa objekt, precis som med andra COM-komponenter.
För undernyckeln InprocServer32 visas en referens till Mscoree.dll i stället för ett traditionellt COM-typbibliotek som anger att den vanliga språkkörningen skapar det hanterade objektet.