私はこの問題に数時間悩まされています。誰かがこれと同様の問題を抱えていることを願っています。
VS2010 を使用してプロトタイプの .Net(C#) dll を開発しました。この dll を C# アプリケーションと VB6 アプリケーションの両方で呼び出せるようにしたいと考えています。
私の質問は:
.Net dll を呼び出している VB6 アプリケーションをデバッグすることは可能ですか? 「 Automation Error The system cannot find the file specified」というエラー メッセージが表示されます。
エラー メッセージは、私の VB6 アプリが .Net dll を見つけるのに何か不足していることを示しています。
VB6 アプリケーションがコンパイルされ、.exe が作成されている場合、VB6 は .exe を使用するときに .Net dll 機能を正常に呼び出すことを認識しています。
ただし、VB6 アプリケーションを介してデバッグできることが重要です。残念ながら、デバッグでは、.Net DLL のクラス オブジェクトをインスタンス化するコード行をステップ オーバーすることはできません。私はこれを行うことができないようです。
注: フォーラムと MSDN のドキュメントを調べたところ、.NET で VB6 dll を呼び出すための解決策がほとんど見つかりました。残念ながら、これは私たちがしなければならないこととは正反対です。
注: コンパイル済みの .Net(C#) アセンブリを既に登録し、VB6 プロジェクトで参照しています。
しかし、これらの 2 つのページを見つけました。これは必要なもののように見えましたが、VS2005 を使用して生成された .NET(c#) dll を呼び出すためのソリューションです。VS2010 を使用して .NET(C#) dll が生成された場合、これは機能しないようです。
誰かが何か提案をしてくれたり、どこかで私がそれを手に入れることができるように教えてくれたりしたら、それは素晴らしいことです.
ありがとう
解決 策 @HansPassant のおかげで、解決策が見つかりました。C# .NET アセンブリを含む VB6 プロジェクトをデバッグするには、「regasm」と「gacutil」の両方を使用して .NET dll を登録し、デバッグを開始する前に必ず VB6 アプリケーションを閉じてから再度開く必要があります。