2010-04-02 3 views
1

VB6에서 볼 수 있도록 관리 한 어셈블리가 있는데 작동하지만 VB5에서 동일한 작업을 수행하는 데 문제가 있습니다..NET 어셈블리를 COM으로 표시하고 VB5에서 작동시키기

VB6의 경우 어셈블리를 작성하고 COM으로 표시하고 COM 개체로 등록한 다음 어셈블리가 VB6의 참조 목록에 표시되어 성공적으로 사용할 수 있습니다. 또한 개체 브라우저는 Assy에 메서드를 표시합니다. 나는 분명히 성공적으로 VB5 개발에 사용되는 가상 워크 스테이션 어셈블리와 TLB를 복사 및 RegAsm을 달렸다 :

가상 W가/S는 윈도우 2000과 그것을 .NET FX는 3.5이없는 것으로 도시
C:\>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 
\regasm arserviceinterface.dll /tlb:arserviceinterface.tlb 
Microsoft (R) .NET Framework Assembly Registration Utility 2.0.50727.3053 
Copyright (C) Microsoft Corporation 1998-2004. All rights reserved. 

Assembly exported to 'C:\Projects\AR\3rd Party\ARService\arserviceinterface.tlb' 
, and the type library was registered successfully 

, 단지 2.0입니다.

어셈블리는 VB5에서 선택할 수있는 참조에 나타나지만 어셈블리의 메서드는 개체 브라우저에 나타나지 않으며 일반적으로 사용할 수 없습니다. 이미 수행하지 않은 단계가 있거나 VB5에서 이러한 COM 개체를 사용하는 방법을 알지 못합니다. VB5 설치 프로그램은 VB6이 설치된 것과 동일한 워크 스테이션이 아니라 가상 워크 스테이션에 설치됩니다.

아이디어가 있으십니까? 나에게 발생한 것은 내가

답변

4
  1. 하는 닷넷 3.5
  2. 에서 어셈블리에 구축하고 사용하는 기능이 있지 않은지 확인 ... 생성하고 문제의 워크 스테이션에 강력한 이름을 사용해야 만 할 수 있다는 것입니다
  3. OLE/COM 개체 뷰어 도구를 복사합니다 (Windows SDK가 설치된 컴퓨터에서 가져올 수 있음). 그것을 실행하고 모든 객체보기로 이동하여 목록을 객체로 스크롤하고 객체를 마우스 오른쪽 버튼으로 클릭하여 인스턴스를 만듭니다.
    2.1 OLE/COM 개체 뷰어에서 인스턴스를 만들 수없는 경우 개체가 컴퓨터에 등록되는 방식 또는 .Net이 설치되는 방식에 문제가 있습니다.
    2.2 OLE/COM 개체 뷰어에서 인스턴스를 만들 수있는 경우 문제는 VB5의 소비량에 있습니다.
  4. VB5가 초기 바인딩 (IUnknown 기반 개체)을 실제로 지원하는지 늦게 바인딩 (IDispatch) 만 지원하는지 기억이 안납니다. VB5에서만 dispinterface를 지원한다는 몰래 혐의가 있었고 VB5.5에서 IUnknown에 대한 지원이 도입되었습니다. 그래서 그것은 당신의 문제 일 수 있습니다.