2010-11-26 17 views
4

最近interopアセンブリを作成する必要がありました。いくつかのグーグルの後、私はtlbimp.exeを発見した。私の次の問題は、私のCOMライブラリに.tlbファイルが付属していなかったことです。さらにグーグルは、タイプlibがexe/dllのリソースとして含まれることが多いことを明らかにした。確かに、VS2010のEXEを開くと、タイプlibと右クリックした後、tlbimpで使用するtlbファイルがあります。驚くばかり。コマンドラインでCOM EXEからTypeLibを抽出する方法

しかし、これはとても良いプロセスではありません。将来これを行う必要があるかどうか、コマンドラインを使用して.exeからタイプライブラリ(.tlbファイル)を抽出する方法はありますか?

答えて

8

Tlbimp.exeはEXE内のタイプライブラリリソースをうまく処理できます。例:

C:\temp\temp>tlbimp c:\windows\system32\wiaacmgr.exe 
Microsoft (R) .NET Framework Type Library to Assembly Converter 3.5.30729.1 
Copyright (C) Microsoft Corporation. All rights reserved. 

Type library imported to WIAACMGRLib.dll 

これを自動化することはかなり危険です。型ライブラリはアセンブリ参照と全く同じです。それが変わった場合、あなたはそれについて知りたいです。あなたの相互運用コードを修正して再テストする必要があるだけでなく、DLL Hellもあなたのドアをノックしているからです。

+1

もし私がこれを2回upvoteすることができたら私はそうするでしょう。 –

+0

ありがとうHans。 COMのexeはかなり頻繁に変更され、私たちのプロジェクトのいくつかは.net 2をターゲットにしています.net 2に対するvs2010のinterop dllを含めるにはいくつか混乱が必要です。私たちのプロジェクトはCOMライブラリの単一バージョンを対象としているため、DLL Hellのリスクは低いですが、リスクを強調することに感謝します。乾杯、 –

関連する問題