クライアントマシンに登録したCOMオブジェクトの更新を時々リリースします。
レジストリに関するNoobの質問:
同じ名前空間とオブジェクト名でこれらの更新を新しいランダムGUIDで登録するたびに、何が起こっているのでしょうか。オブジェクトは置き換えられますか?以前のオブジェクトのバージョンはまだありますか?以前のバージョンの登録を解除する必要がありますか?生のGUIDの登録を解除することは可能ですか?
クライアントマシンに登録したCOMオブジェクトの更新を時々リリースします。
レジストリに関するNoobの質問:
同じ名前空間とオブジェクト名でこれらの更新を新しいランダムGUIDで登録するたびに、何が起こっているのでしょうか。オブジェクトは置き換えられますか?以前のオブジェクトのバージョンはまだありますか?以前のバージョンの登録を解除する必要がありますか?生のGUIDの登録を解除することは可能ですか?
必要な登録は、COMオブジェクトを更新するために選択したアプローチによって異なります。最も簡単なのは、既存のオブジェクトを更新することです。この場合、CLSIDとオブジェクトはそのまま保持され、新しいメソッドとインターフェイスで拡張される可能性があります。この場合、基本的に登録を解除する必要はありませんが、特定のCOMクラスを廃止し、登録を解除せずに、その登録を孤立したジャンクとしてレジストリに残すというシナリオに遭遇する可能性があります。
交換するモジュールの登録を解除し、インストール後に新しいモジュールを登録する方が安全です。または、新しいCOMライブラリが内部でアップグレードを処理し、廃止された登録を明示的に削除することもできます(古いバージョンの単純な登録解除と比較すると、複雑で、多くの場合不要です)。登録解除/再登録のサイクルにより、永続的な状態が存在する場合、それらが削除され、登録解除によってクリーンアップされる場合があります。
ターゲットシステムでバージョンを並べて実行する場合は、別のアプローチを使用することをお勧めします。この場合、すべて/一部のクラスに新しいCLSID、個別の(特にバージョン管理された)ProgID、およびアプリケーションが「現在の」またはインストールされている最新バージョンのクラスにバインドするためのバージョンに依存しないProgIDを使用します。