Windows Installer では、インストールしたソフトウェアの管理にプロダクトコード(Product Code)とアップグレードコード(Upgrade Code)を用いています。


ここで、プロダクトコードは同一ソフトウェアのバージョン識別に、アップグレードコードはソフトウェアの識別に使用しています。


先のブログで、アップグレードコードがレジストリの何処にあるのかを調べなくては、というお話しをしましたが、ようやく、判明しました。


プロダクトコードもアップグレードコードも、GUIDという32桁の識別コードな訳ですが、Visual Studioのセットアッププロジェクトで表示されるGUIDは、Windows Installer でジストリに登録する際に、パックGUID化したキーで登録されるということなのです。


どうりで、そのままのコードでレジストリを検索しても見つからないはずです。


参考サイト:いものホームページ Windows Installer


ちなみに、アップグレードコードを管理しているレジストリキーは、


HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UpgradeCodes\


で、この下にずらっとパックGUID化したアップグレードコードのサブキーが格納されています。


そして、このアップグレードサブキーの項目として、プロダクトコードが格納されており、これでアップグレードコードとプロダクトコードの紐付けができますから、後は、そのプロダクトコードをアンパックして、アンインストール情報を検索すれば、OKということになります。


ただ、気になるのは、アップグレードサブキーの下に、複数のプロダクトコードが格納されている場合がある点です。


多分、複数のバージョンが同時存在を許可しているケースだと思うのですが、これは要調査ですね。


まあ、とりあえず、この問題の解決まで、あと一歩というとこまできました。


やれやれです。