2012-09-20 4 views
11

COM으로 내부 VB 프로젝트를 사용하는 C# 프로젝트가 있습니다.COM을 사용하는 레지스트리에서 클래스로드는 ToolsVersion = "2.0"으로 작동하지만 ToolsVersion = "4.0"으로 실패합니다

내가 VS 2010 프로젝트를 변환 할 때 다음 줄은 나에게 예외를 던져 :

Set RTCClient_ = New RTCCORELib.RTCClient 

RTCCore.RTCClient는 마이크로 소프트의 부분은 당신이 당신의 설치에 포함 할 수 RTC (RTC 클라이언트 API 1.2)에 대한 모듈을 병합입니다 패키지 (내 경우 EXE 포함).

ERROR: Automation error
The specified module could not be found. (-2147024770)

하지만 내 csproj를 변경하고있어 경우 ToolsVersion="2.0" 위의 줄을 사용하여 :

RTCCore.RTCClient

입니다 HKEY_CLASSES_ROOT\RTCCore.RTCClient

내가지고있어 오류에서 레지스트리에 등록되는 클래스입니다 작품과 나는 RTCClient 개체를 얻을 수 있습니다.

무엇이 문제입니까?

+1

는 당신은 내가 당신의 질문에서 누락 된 몇 가지 정보가 있다고 생각 C# – Cynede

+0

에서 COM 개체를 호출 어떻게 표시 될 수 있습니다. RTCCORELib.RTCClient가 무엇인지 명확히하십시오; VB 프로젝트 자체가 COM 서버를 구현하는지 확인하십시오. C# 프로젝트의 역할과이 VB 코드와의 관계를 설명합니다. –

+0

"VB 프로젝트 자체가 COM 서버를 구현하는지 여부를 확인하고 C# 프로젝트의 역할과 이것이이 VB 코드와 어떻게 관련되는지를 설명하십시오."- 여전히 편집 된 질문에는이 사실이 표시되지 않습니다. –

답변

1

프로젝트의 COM 라이브러리에 대한 참조 속성에서 Interop Types Embedding을 false으로 설정해보십시오. 내 것은 C#이지만 VB.Net에도있을 수 있습니다.

Properties window