2012-01-05 22 views
2

私はvb.netでcomクラスライブラリを作成しました。私はregasmでdllを登録しました。それから私はインポートし、それをvb6プロジェクトに使いました。ライブラリを登録解除して再度登録すると、次のエラーが表示されます。comクラスライブラリの登録

実行時エラー '-2147024894(80070002)':自動化エラーです。

ライブラリをもう一度使用できるようにするには、クラスで別のClassId、InterfaceId、EventsIdを使用してライブラリを再構築してから、新しいDLLを登録する必要があります。

これは意図的に起こっていますが、これは機能性が必要ですか、何か間違っていますか?

ありがとうございます。

PS:同じファイルで上書きした場合や、そのフォルダの名前を変更して元の名前に戻した場合も同じことが行われます。再構築と再登録が必要です。あなたはGACにあなたのアセンブリをインストールしない場合は登録時に/codebaseコマンドラインを使用する必要が

+0

登録や登録解除に使用しているコマンドラインは何ですか? regasm出力は何を言いますか?regasmはエラーを報告しますか? –

+0

regasm mypath \ mylib.dll。それは正常に登録されています、そうでなければまったく動作しません。 – reven

+0

登録を解除するとどうなりますか?regasmから出力されるコマンドラインは何ですか? –

答えて

4

(厳密な名前のこの操作を行うことができるようにする必要があります)

は、より多くの情報のためRegasm referenceをチェック

+0

明確にするには、 'codebase'オプションを使用する必要があります。強く指定する必要はありません。強い名前は、GACに配置するためにのみ必要です。 – tcarvin

+0

@tcarvin - MSによるものではないdocs: '/ codebaseオプションで指定するassemblyFile引数は、厳密な名前のアセンブリでなければなりません。 ' –

+0

いいえ、そのドキュメントはかなり間違っています。厳しい名前の要件は、GACのためにのみ存在します。/codebase( "あなたはDLL地獄を作成しようとしています")を使用したときに警告が表示されますが、あなたが開発マシンでのみこれをやっている限り、無視することができます。 –

関連する問題