다음을 통해 공유


COM에 어셈블리 등록

어셈블리 등록 도구(Regasm.exe)라는 명령줄 도구를 실행하여 COM에서 사용할 어셈블리를 등록하거나 등록 취소할 수 있습니다. Regasm.exe COM 클라이언트가 .NET Framework 클래스를 투명하게 사용할 수 있도록 클래스에 대한 정보를 시스템 레지스트리에 추가합니다. 클래스는 RegistrationServices 동등한 기능을 제공합니다.

관리되는 구성 요소는 COM 클라이언트에서 활성화되기 전에 Windows 레지스트리에 등록해야 합니다. 다음 표에서는 Regasm.exe 일반적으로 Windows 레지스트리에 추가하는 키를 보여 줍니다. (000000은 실제 GUID 값을 나타냅니다.)

GUID 설명 레지스트리 키
CLSID 클래스 식별자 HKEY_CLASSES_ROOT\CLSID\{000…000}
Invariant IdentityDetector (주체 불변 탐지기) 인터페이스 식별자 HKEY_CLASSES_ROOT\Interface\{000…000}
LIBID 라이브러리 식별자 HKEY_CLASSES_ROOT\TypeLib\{000…000}
ProgID 프로그래매틱 식별자 HKEY_CLASSES_ROOT\000…000

Under the HKCR\CLSID\{0000… 0000} 키, 기본값은 클래스의 ProgID로 설정되고 두 개의 새 명명된 값인 클래스와 어셈블리가 추가됩니다. 런타임은 레지스트리에서 어셈블리 값을 읽고 런타임 어셈블리 확인자로 전달합니다. 어셈블리 확인자는 이름 및 버전 번호와 같은 어셈블리 정보를 기반으로 어셈블리를 찾으려고 시도합니다. 어셈블리 확인자에서 어셈블리를 찾으려면 어셈블리가 다음 위치 중 하나에 있어야 합니다.

  • 전역 어셈블리 캐시(강력한 이름의 어셈블리여야 합니다).

  • 애플리케이션 디렉터리에서 애플리케이션 경로에서 로드된 어셈블리는 해당 애플리케이션에서만 액세스할 수 있습니다.

  • /codebase 옵션으로 지정된 파일 경로를 따라 Regasm.exe.

Regasm.exe는 HKCR\CLSID\{0000... 0000} 키 아래에 InProcServer32 키도 만듭니다. 키의 기본값은 공용 언어 런타임(Mscoree.dll)을 초기화하는 DLL의 이름으로 설정됩니다.

레지스트리 항목 검사

COM interop은 .NET Framework 클래스의 인스턴스를 만드는 표준 클래스 팩터리 구현을 제공합니다. 클라이언트는 다른 COM 구성 요소와 마찬가지로 관리되는 DLL에서 DllGetClassObject 를 호출하여 클래스 팩터리를 가져와 개체를 만들 수 있습니다.

InprocServer32 하위 키의 경우, 공용 언어 런타임이 관리 개체를 생성함을 나타내기 위해 전통적인 COM 형식 라이브러리 대신 Mscoree.dll에 대한 참조가 나타납니다.

참고하십시오