2016-04-08 21 views
0

.NET Framework 4.5環境で作成されたC#ComVisibleクラスライブラリdllを持っていますが、dllターゲットフレームワークはFramework 3.5に設定されています COM dll Visual Studio 2012を使用してGACに追加しました このDLLをレガシーVB6プロジェクトのリファレンスとして追加します(プロジェクト - >参照の追加から)。 すべて正常に動作します。これはすべてWindows 7で行われます。VB6読み込み.NET 4 Windows 7からWindows XPへのC#COM DLL

Windows XPでは.NET Framework 4.0と同じdllを使用しています。 Windows XP上でGACにdllを追加します。 しかし、参照として追加するために、VBでdllを見つけることができません。 私は何が欠けているかも教えてください。私のXPマシンでは、dllはC:\ WINDOWS \ assembly \ GAC_MSILの場所にあります。

私はここで何が不足しているか考えてください。

EDIT:また、regasmユーティリティを使用してアセンブリを登録しました。 レジストリの変更私のVB6プロジェクトの「利用可能な参照」リストにCOM dllが表示されるはずですか?

+0

Regasm.exeでアセンブリを登録することはありませんでした。それはあなたの開発マシン上で "Register for COM interop"チェックボックスを使って自動的に行うことができます。プロジェクトを構築するだけで十分です。そのXPマシンではありません。正しいものを使用することを忘れないでください。古い.NETフレームワークのバージョンを対象としているため、古いものが必要です。 VB6はあまり気にしないことを覚えておいてください。 –

答えて

-2

COMのためにあなたのアセンブリを登録するときは、コードベース/

regasm myassembly.dll /codebase 

を呼び出す必要があるあなたはVB6アプリケーションがDLLを見つけるために使用する、関連するレジストリエントリを追加します。

+1

いいえ、ここで重要なのは/ tlbオプションです。 –

+0

VB6の2番目のコンピュータでDLLを使用して開発を行うか、コンパイルされたアプリケーションを実行しようとしているかどうかによって異なります。デプロイ時にtlbファイルは必要ありません。ユーザーが2番目のコンピュータでアプリケーションを実行しようとしているだけの場合は、/ codebaseだけが必要です。 – Marc

+1

再び、いいえ。コードベースオプションは、OPが実行しているGACにアセンブリがインストールされている場合は適用されません。 [Regasm.exe(アセンブリ登録ツール)](https://msdn.microsoft.com/en-us/library/tzat5yw6(v = vs.110).aspx)を参照してください。 @Hansは、関連する/ tlbオプションです。 – MarkL

関連する問題