8

spicIE に基づく IE 用のプラグインがあります。目的は、いくつかの外部デバイスに接続することです。

これらの外部デバイスに接続するために、別の会社が独自のトークンと DLL を開発しました。トークンによる認証を行うには、いくつかの ActiveX と DLL が必要です。

問題は、IE 用に開発したプラグインの最終部分に install.bat ファイルがあり、RegAsm を実行して DLL を登録し、その後プラグイン (またはその変更) を IE で表示できることです。

IE からプラグインを実行すると、認証に必要な DLL (x.dll という名前) がコードで見つかりません。登録された DLL はどこにコピーされますか? 本当にコピペ?プラグインの DLL が存在するフォルダーに x.dll が必要です。

4

1 に答える 1

8

簡単に言えば、RegAsm は .NET アセンブリを COM 表示可能に登録します。MSDN から: クラスが登録されると、どの COM クライアントでも、そのクラスが COM クラスであるかのように使用できます。クラスは、アセンブリのインストール時に一度だけ登録されます。アセンブリ内のクラスのインスタンスは、実際に登録されるまで COM から作成できません。

あなたのコードを ActiveX で見なくても、私の理解が正しければ、あなたの ActiveX はいくつかの COM DLL に依存しているため、.NET DLL に対して RegAsm を実行しているのです。

RegDllViewを実行して、登録されているものの詳細を見つけ、実際に登録されたオブジェクトを実際にインスタンス化しているかどうかを確認します。

また、それでも問題が解決しない場合は、VB6/Visual Studio 2010 などでオブジェクトをインスタンス化するか、アーリー バインディングで同等のものを作成してみて、問題がないかどうかを確認してください。インスタンス化のエラーを調べます。

于 2012-04-17T09:02:33.267 に答える