2014-07-22 5 views
0

저는 4.0 프레임 워크와 3.5 버전의 공급 업체에서 제공 한 DLL을 보유하고 있습니다. 나는 dll이 com 인터페이스를 공개 했으므로 여전히 그것을 사용할 수 있어야한다는 공급자의 말을 들었습니다. 나는 .dll과 .tlb 파일을 가지고있다. 몇 가지 연구를 한 후에 TlbImp를 사용해 보았지만 오류가 발생했습니다.TlbImp가 작동하지 않습니다.

cmd TlbImp.exe myDll.dll은 유효한 형식 라이브러리가 아닙니다.
cmd TlbImp.exe myDll.tlb은 CLR 어셈블리에서 라이브러리를 어셈블했으며 CLR 어셈블리로 다시 가져올 수 없다고 말합니다.

문제가 무엇인지에 대한 아이디어 또는 C# 08의 명령에 잘 액세스하는 데 사용할 수있는 다른 방법은 무엇입니까? 감사!

+0

당신은 .NET 3.5 응용 프로그램에서 .NET 4 구성 요소를 사용하려고합니까? 여기에 COM/TLB가 관여한다는 것을 이해하지 못합니다. 명확히 할 수 있습니까? – JohnD

+0

예 dll은 .NET4에 있지만 .NET 3.5 응용 프로그램에서 사용하려고합니다. 공급 업체에 따르면 com 인터페이스를 제공하기 때문에 계속 작동해야합니다. 이 작업을 수행하지 않아도되므로 정확하게 수행 할 방법을 모릅니다. TlbImp는 .NET 3.5에서 사용할 수 있지만 확실하지 않은 DLL을 작성합니다. – user3646105

+0

알겠습니다. 당신이 읽고 싶어 할 수도 있습니다 그래서 대답 : http://stackoverflow.com/questions/2382927/can-i-use-a-net-4-0-library-in-a-net-2-0-application - - 그들은 당신과 비슷한 상황에 처해 있습니다. 그러나, 가능하면 .NET 4.x로 앱을 업그레이드하는 것이 더 바람직하다고 생각합니다. – JohnD

답변

0

명령 tlbimp myDll.tlb이 /myDll.dll /keyfile:filename.snk해야

키 파일 : filename.snk는 선택 사항입니다, 다음 디렉토리 C에서 사용할 올바른 Tlbimp.exe를 파일을 사용하여 : \ WINDOWS \ Microsoft.NET \ 프레임 워크 \ VersionX

참조 : http://msdn.microsoft.com/en-us/library/tt0cf3sx(v=vs.110).aspx