2

現在、レガシーVBAアプリケーションを.Netアプリケーションに移植しています。このプロセス中に、既存のVBAアプリケーションのユーザーはいくつかの機能を追加する必要があります。したがって、VBAでコーディングしてからC#でコーディングする代わりに、C#で新しい機能を記述しました。これを、COMを介して既存のVBAアプリケーションに公開し、現在の.Netアプリケーションバージョンでも保持したいと考えています。

このソリューションには、UI用の1つのプロジェクト、ビジネスロジック用の1つのプロジェクト、データアクセス層用の1つのプロジェクトの、いくつかのプロジェクトが含まれています。

新機能は、データを変更するためのいくつかの新しいフォームです。したがって、理想的には、COM相互運用機能を介してこれらのC#フォームをランチするアクセスでフォームコマンドボタンをクリックします。

COM相互運用機能を介してこのフォームを公開するにはどうすればよいですか。私が望んでいたのは、必要なフォームを起動するためのアクセス方法を公開するために、インターフェイスICOMManagerを含む別のプロジェクトMyProject.COMを追加することでした。COMManagerクラスは、.netアプリケーションで必要なフォームをインスタンス化し、それらを表示します。このプロジェクトMyProject.COMには、UIレイヤーとビジネスロジックレイヤーへの参照があります。

REGASMを使用してこのプロジェクトを登録したい場合、これらの他のプロジェクトへの参照をどのように含めますか?

これを行う方法についてのヘルプやアドバイスをありがとう。

4

1 に答える 1

3

ああ、これは思ったよりずっと簡単です。

regasm によって生成された reg ファイルを見ると、tlb (タイプ ライブラリ) は、.Net コンポーネントを実行するためのライブラリを見つけることができる場所への単なるポインタであることがわかりました。

したがって、tlb を登録し、残りのプロジェクト ファイルが配置されているインストール ディレクトリを指していることを確認すると、動作します。

于 2009-11-09T01:48:51.680 に答える