Rejestrowanie zestawów do użycia z modelem COM

Możesz uruchomić narzędzie wiersza polecenia o nazwie Narzędzie rejestracji zestawów (Regasm.exe), aby zarejestrować lub wyrejestrować zestaw do użycia z com. Regasm.exe dodaje informacje o klasie do rejestru systemowego, aby klienci COM mogli w sposób niewidoczny używać klasy .NET Framework. Klasa RegistrationServices zapewnia równoważną funkcjonalność.

Składnik zarządzany musi być zarejestrowany w rejestrze systemu Windows, zanim będzie można go aktywować z poziomu klienta COM. W poniższej tabeli przedstawiono klucze, które Regasm.exe zazwyczaj dodaje do rejestru systemu Windows. (000000 wskazuje rzeczywistą wartość identyfikatora GUID).

Identyfikator GUID opis Klucz rejestru
CLSID Identyfikator klasy HKEY_CLASSES_ROOT\CLSID\{000... 000}
IID Identyfikator interfejsu HKEY_CLASSES_ROOT\Interface\{000... 000}
LIBID Identyfikator biblioteki HKEY_CLASSES_ROOT\TypeLib\{000... 000}
Progid Identyfikator programowy HKEY_CLASSES_ROOT\000... 000

W obszarze HKCR\CLSID\{0000... Klucz 0000}, wartość domyślna jest ustawiona na Wartość ProgID klasy, a dodawane są dwie nowe nazwane wartości, Klasa i Zestaw. Środowisko uruchomieniowe odczytuje wartość zestawu z rejestru i przekazuje ją do narzędzia rozpoznawania zestawów środowiska uruchomieniowego. Program rozpoznawania zestawów próbuje zlokalizować zestaw na podstawie informacji o zestawie, takich jak nazwa i numer wersji. Aby program rozpoznawania zestawów lokalizował zestaw, zestaw musi znajdować się w jednej z następujących lokalizacji:

  • Globalna pamięć podręczna zestawów (musi być zestawem o silnej nazwie).

  • katalog aplikacji. Zestawy załadowane ze ścieżki aplikacji są dostępne tylko z tej aplikacji.

  • Wzdłuż ścieżki pliku określonej z opcją /codebase do Regasm.exe.

Regasm.exe również tworzy klucz InProcServer32 w folderze HKCR\CLSID\{0000... Klucz 0000}. Wartość domyślna klucza jest ustawiona na nazwę biblioteki DLL, która inicjuje środowisko uruchomieniowe języka wspólnego (Mscoree.dll).

Badanie wpisów rejestru

Interop COM zapewnia standardową implementację fabryki klas, aby utworzyć wystąpienie dowolnej klasy .NET Framework. Klienci mogą wywoływać klasę DllGetClassObject w zarządzanej biblioteki DLL, aby uzyskać fabrykę klas i utworzyć obiekty, podobnie jak w przypadku dowolnego innego składnika COM.

W przypadku podklucza InprocServer32 odwołanie do Mscoree.dll pojawia się zamiast tradycyjnej biblioteki typów COM, aby wskazać, że środowisko uruchomieniowe języka wspólnego tworzy obiekt zarządzany.

Zobacz też