문제

방금 새 COM 프로젝트 (C#, .NET 3.5) 구축을 마쳤습니다. 이 프로젝트는 VFP 응용 프로그램에 의해 호출됩니다. 내 개발 시스템에서 잘 작동하지만 이제 사용자의 컴퓨터에 배치하는 방법을 알아야합니다. 이런 종류의 프로젝트에서는 한 번 클릭 할 수 없으므로 DLL을 수동으로 배포하는 데 붙어있는 것 같습니다.

그렇다면 DLL을 어디에 두어야하고 어떻게 등록합니까?

BTW, 3.5 프레임 워크는 이미 사용자 시스템에 설치되어 있습니다.

티아

도움이 되었습니까?

해결책

.NET 어셈블리와 함께 RegSVR32를 사용한 적이 없으며 /Codebase 옵션과 함께 Regasm을 사용합니다.

    C:\Windows\Microsoft.NET\Framework\v2.0.50727\regasm.exe /codebase mydll.dll

/tlb 옵션을 사용하여 유형 라이브러리를 내보내고 등록 할 수도 있습니다.

물론 가장 쉬운 방법은 Vstudio와 함께 설치 프로그램을 만들면이 작업을 수행 할 것입니다.

다른 팁

COM 클래스 및 인터페이스에 대한 설명을 작성합니다

.NET 어셈블리에는 유형 라이브러리 호환 형식에 정보가 포함되어 있지 않습니다. 따라서 프로그래머가 클래스의 어셈블리 설명을 유형 라이브러리 파일로 추출하기 위해 .net-supplied 유틸리티 중 하나를 실행해야합니다.

하나의 유틸리티는 .NET 유형 라이브러리 수출 업체 인 Tlbexp.exe입니다. 이 명령 줄 유틸리티는 입력으로, 어셈블리 DLL 파일의 이름을 유형 라이브러리로 변환 할 수 있습니다. 프로그래머는 생성 할 유형 라이브러리 파일의 이름을 지정할 수도 있습니다.

tlbexp ComServer.dll /out:ComServer.tlb

Assembly exported to C:\Magellan\Source\Output\Debug\ComServer.tlb

유형 라이브러리가 생성되면 COM 클라이언트가 COM 클라이언트가 COM 클래스의 인터페이스에 바인딩하는 데 필요한 정보를 얻고 런타임에 COM 클래스를 활성화하기 위해 COM 클라이언트가 참조 할 수 있습니다.

COM 클래스 및 인터페이스 등록

COM 클래스가 런타임에 클라이언트가 액세스 할 수 있도록 COM 인프라는 COM 클래스를 구현하는 코드를 찾는 방법을 알아야합니다. 다음 명령이이를 달성합니다.

regasm ComServer.dll

귀하의 DLL은 원하는 곳에 위치 할 수 있지만 좋은 선택은 C : Program Files MyApplication입니다.

http://www.csharphelp.com/archives/archive190.html

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top