8

大規模な MFC ベースのアプリケーションと少数のマネージ (.NET) アドインとの統合に取り組んでいます。これらのアドインとの通信は、COM 経由で行われます。

これまでは、レジストリを使用して、これらのアドインをアプリケーションで (COM サーバーとして) 利用できるようにしてきました。しかし、現在、これを行うために、登録不要の COM 相互運用機能を使用しようとしています。

これらのアドインは、アプリケーションが実行されているディレクトリとは別のディレクトリ (理想的にはどこでも) に配置できるようにしたいと考えています。しかし、依存アセンブリを解決できないため、サーバー オブジェクトのインスタンス化で問題が発生しているようです。これは、COM サーバー DLL のディレクトリにも存在します。

「昔ながらの」COM 相互運用機能は、ターゲット アセンブリを読み込むときに LoadFrom コンテキストを使用してこれを処理しました。しかし、アクティベーション コンテキスト メカニズムはこれを行っていないようです。

これを機能させる方法を知っている人はいますか?モジュールの SxS マニフェストで依存アセンブリを識別できるかどうか、またはアクティベーション コンテキストを別の方法で作成できるかどうかは明らかではありません。

考えやヒントをありがとう!

ジェフ

4

4 に答える 4

1

私はMFCプロジェクトにもその制約にも精通していないので、この問題を理解していることを願っています。アクティブ化とインスタンス化をすべて処理するインターフェイス (MFC アプリに永続的に登録されている) を備えた "既知の" .NET クラスはどうでしょうか。

ロドニー

于 2009-12-22T06:40:25.860 に答える
-1

Visual Studio のコマンド プロンプトを開き、regasm を使用してアセンブリを登録してみてください

regasm /tlb:"path"
于 2009-12-23T12:34:32.753 に答える
-1

中間 (相互運用) dll を .net フレームワークに登録しましたか?

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\regasm "path..\AxInterop.xxx.dll" または C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\regasm "path..\Interop .xxx.dll"

よろしくファニ

于 2009-12-23T07:49:22.860 に答える