14

そうです、最初に実行しました:

c:\regsvr32 Amazing.dll

次に、(偶然にも - 追加するかもしれませんが) もう一度実行したに違いありません。(実際) 'Amazing.dll' の新しいバージョンがリリースされたときにもう一度実行しました。はい-実行する必要があることがわかりました:

c:\regsvr32 /u Amazing.dll

事前に - でもねえ!忘れてた。

端的に言うと、VS で COM 参照を追加すると、「Amazing」の 3 つのインスタンスがすべて同じ場所 (c:\Amazing.dll) を指していることがわかります。実行regsvr32 /uすると、参照の 1 つが削除されます。なし...

これらの参照を取り除くにはどうすればよいですか? 私はregeditシナリオを見ていますか?- その場合 -キーの 1 つを削除するとどうなりますか?

乾杯

4

3 に答える 3

14

オブジェクトの GUID は変更しないでください。つまり、COM オブジェクトを登録すると、再登録してもレジストリに何も追加されません。

プロジェクトに追加の COM インターフェイスまたはオブジェクトを追加した場合を除きます。

いずれにせよ、これが 1 回限りの取引である場合 (そのように聞こえます)、regedit を開いて不要なキーを手動で削除してください。

于 2008-08-21T12:35:41.543 に答える
4

RegClean と呼ばれる、レジストリをスキャンし、有効なファイルを指していない COM キーを見つけるなどのことを行う、Win95 の時代から存在している MS によるツールがあります (私はここで見つけました: http:// downloads.z​​dnet.com/abstract.aspx?assetid=881470&node=2094 ) 特に、ビルドのたびに新しい COM GUID を生成する VB のレガシー COM をいじるときに、まだ使用している場所をいくつか見てきました。

したがって、それを取得した場合は、ファイルを登録解除して削除または移動し、アプリを実行すると、「孤立した」エントリが消去されます。

RegEdit を使用してキーを削除する場合は、クラス ID と GUID エントリを削除する必要がある場合があります。

于 2008-08-21T12:52:11.987 に答える
0

以前、COM でひどい混乱に陥ったことがあります。残念ながら、レジストリが各参照を削除する方法を選択する必要がありました。

于 2008-08-21T12:32:58.227 に答える