C# でビルドされた ActiveX DLL があります。DLL は VB6 アプリケーションで使用されます (また、従来の ASP アプリケーションでも使用されます)。
DLL は C# クラス ライブラリ プロジェクトです。
- ソース コード内のクラスおよびインターフェイスの Guid 属性
- プロジェクト内の COM 関連の属性/設定
- ソースコードの progid 属性
すべて明らかに適切に設定されています。
証拠として、DLL を regasm /codebase /tlb:xxxxx に登録しており、VB6 dev env は参照ウィンドウで COM オブジェクトを確認できます。
プロジェクトに COM DLL 参照を追加すると、Intellisense が動作し、すべて正常に動作し、アプリケーションが正しくコンパイルされます。
問題は、コンパイルされたアプリケーションの exe ファイルと同じフォルダーに DLL のコピーを置かないと、DLL 内のクラスのインスタンスをインスタンス化しようとして失敗することです。返されるエラーは「指定されたファイルが見つかりません」です。DLL のコピーがアプリケーションの exe と同じ場所にあれば、すべて問題なく動作します。
同様の問題への言及を見つけましたが、解決方法に関するヒントや手がかりはありません。
マリオ