3

COM コンポーネントを使用する C# .net 2.0 Windows アプリがあります。この COM ライブラリへの参照を追加すると、Visual Studio 2005 によって相互運用アセンブリ DLL が自動的に追加されます。

COM コンポーネントが頻繁にアップグレードされる場合、アプリもアップグレードし続けるにはどうすればよいですか? 相互運用 DLL をアップグレードする必要がありますか? COM のアップグレードに対応するために、毎回再構築して再展開する必要がありますか?

この相互運用性の問題を 100% 理解しているわけではありません。COM をアップグレードするたびに作業を最小限に抑える必要があるだけです。毎回再構築と再デプロイを避ける必要があります。これを達成するための最適な方法はありますか?

MSDN で Advanced COM Interoperability ( http://msdn.microsoft.com/en-us/library/bd9cdfyx.aspx ) を読んでいますが、まだ明確な答えがありません。

前もって感謝します

4

3 に答える 3

2

問題のCOMのtlbファイルが見つかりません。

通常、COM サーバー DLL に組み込まれています。Visual Studio で表示されるものは、File + Open + File で DLL を選択します。TYPELIB ノードが表示されます。リソース 1 はタイプ ライブラリです。

Visual Studio コマンド プロンプトから Oleview.exe を実行すると、タイプ ライブラリを逆コンパイルできます。File + View Typelib を開き、DLL を選択します。右側のペインの内容をコピーしてテキスト エディターに貼り付け、保存します。この IDL に変更がある場合はインポート ライブラリとプログラムを再構築する必要があります。そうしないと、アクセス違反の例外や完全に間違ったメソッドの呼び出しなど、実行時の問題の診断が非常に難しくなる可能性があります。

これを自動化するのは困難です。明らかに、ベンダーが重大な変更について知らせるためのより良い方法を好むでしょう。このサーバーで作業したプログラマーは、この必要性を十分に認識している必要があります。

于 2013-04-03T22:02:35.073 に答える