質問

新しいCOMプロジェクト(C#、. NET 3.5)の構築が完了しました。このプロジェクトは、VFPアプリケーションによって呼び出されます。私の開発マシンではうまく機能していますが、ユーザーのマシンにデプロイする方法を知る必要があります。この種のプロジェクトでは[1回クリック]を使用できないため、手動でDLLを配布する必要があります。

では、DLLをどこに配置し、どのように登録するのですか?

ところで、3.5フレームワークはユーザーのマシンに既にインストールされています。

TIA

役に立ちましたか?

解決

RegSvr32を.Netアセンブリで実際に使用したことはありません。むしろ、/ codebaseオプションでregasmを使用します。

    C:\Windows\Microsoft.NET\Framework\v2.0.50727\regasm.exe /codebase mydll.dll

/ tlbオプションを使用して、タイプライブラリをエクスポートして登録することもできます。

もちろん最も簡単な方法は、vstudioでインストーラーを作成するだけです。これで自動的に実行されます。

他のヒント

COMクラスとインターフェイスの説明の作成

.Netアセンブリには、タイプライブラリ互換形式の情報は含まれません。そのため、プログラマは、クラスのアセンブリ記述をタイプライブラリファイルに抽出するために、.Netが提供する2つのユーティリティのいずれかを実行する必要があります。

1つのユーティリティは、.NETタイプライブラリエクスポーターであるTLBEXP.EXEです。このコマンドラインユーティリティは、入力として、タイプライブラリに変換されるアセンブリDLLファイルの名前を受け取ります。プログラマは、作成するタイプライブラリファイルの名前を指定することもできます。

tlbexp ComServer.dll /out:ComServer.tlb

Assembly exported to C:\Magellan\Source\Output\Debug\ComServer.tlb

タイプライブラリが作成されると、COMクライアントによって参照され、COMクライアントがCOMクラスのインターフェイスにバインドし、実行時にCOMクラスをアクティブにするために必要な情報を取得できます。

COMクラスとインターフェースの登録

実行時にクライアントがCOMクラスにアクセスできるようにするには、COMインフラストラクチャがCOMクラスを実装するコードを見つける方法を知っている必要があります。次のコマンドでこれを実現します。

regasm ComServer.dll

DLLは任意の場所に配置できますが、C:\ Program Files \ MyApplicationが適切な選択です。

http://www.csharphelp.com/archives/archive190.html

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top