2010-06-14 5 views
3

.NET 솔루션 (C++로 작성된 하나의 프로젝트 외에도 C#으로 작성된 프로젝트)이 라이브러리에 있습니다..NET DLL이 등록되어 있는지 확인하는 방법은 무엇입니까?

모든 C#, C++ 라이브러리가 올바르게 등록되었는지 테스트 할 수있는 starttest-tool을 만들고 싶습니다. 어떻게해야합니까? C# 또는 C++ COM 라이브러리가 등록 된 경우 .NET에 어떻게 요청할 수 있습니까? br

답변

2

한 가지 방법은 등록 된 DLL을 사용하여 개체를 만드는 것입니다. 그것이 작동한다면 당신은 제대로 등록 된 다른 모든 메소드가 약간 신뢰할 수 없다는 것을 확신 할 수 있습니다.

+0

등록 된 DLL이 작동하지 않는 여러 가지 이유가 있습니다. 자주 만난 DLL에는 종속성 DLL이 없습니다. –

+0

예가 이것이 가장 일반적인 이유입니다. –

0

테스트가 요구하는 각각의 클래스를 인스턴스화하는 것이 가장 좋습니다. 참조를 분석하고 COM 등록을 결정하는 것은 다소 복잡합니다 (Windows의 경우조차도).

예를 들어 레지스트리에서 COM 개체의 프로그램 ID를 검색 할 수 있지만 모든 종속성이 있고 전체 개체와 인터페이스가 제대로 등록되었다고는 알 수 없습니다.

1

COM 구성 요소의 classid 항목이 있으면 레지스트리를 검색/검색 할 수 있습니다. 또는 등록시 설정할 수있는 다른 키.

모든 클래스는이 하이브에 registred 있습니다

HKEY_LOCAL_MACHINE/Software/Classes 

또 다른 방법은 인스턴스화에게 COM 개체를 시도하고 성공 또는 실패 여부를 확인하는 것입니다.

관련 문제