2015-02-05 1 views
-1

SQLServer 복제 dll에서 개체를 호출하는 통합 (단위) 테스트를 작성하려고합니다.ComErrorException '클래스가 등록되지 않았습니다.'

'{Class Not Registered}' 
-2147221164 

내가 86로 플랫폼을 전환 시도했지만 문제가 해결되지 않은 : 그것은 내가 예외가 객체 MergeSynchronizationAgent를 실체화하려고

.

정확한 dll은 Microsoft.SQLServer.Replication.dll입니다.

도움을 주시면 대단히 감사하겠습니다.

+0

SQL Server가 해당 시스템에 올바르게 설치 되었습니까? 난 당신이 핵심 com 개체를 수동으로 등록해야 할 것이라고 의심. 파일 양식을 다른 곳으로 복사 했습니까? 어떤 식 으로든 도움이 될이 Regsrvr32 함수가 있습니다. –

+0

권. 예 SQL이 올바르게 설치되었습니다. 이것은 동일한 결과를 가진 여러 컴퓨터에서 시도되었습니다. Regsver32 문제인지 여부는 알 수 없습니다.이 질문을 게시했을 때 해결 방법을 찾을 수 있기를 바랍니다. – TMan

답변

0

먼저해야 할 일은 개체가 등록되어 있는지 확인하는 것입니다. ProgId와 CLSID는 레지스트리에 있습니다. HKEY_CLASSES_ROOT로 이동하여 알고 있다면 개체의 ProgId를 검색하십시오. 알 수없는 경우 64 비트 DLL 인 경우 HKEY_CLASSES_ROOT \ CLSID에서, DLL이 32 비트 DLL 인 경우 HKEY_CLASSES_ROOT \ Wow6432Node \ CLSID에서 CLSID를 검색하십시오. 프로세스는 COM을 통해로드하려는 DLL과 동일한 비트 여야합니다.

개체를 만들기 전에 CoInitialize() 또는 OleInitialize()를 호출 했습니까? (.NET에서 호출 할 경우 호출하지 않아도됩니다.)