0

InstallShieldを使用してインストールする場合、次のレジストリパスでGUIDではなく固定名を製品キーに設定する方法があります

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{Random GUID}

現在のユーザーインストールと32ビットOSの代替パス

基本的に私は次のようなものが欲しい

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\My App
4

1 に答える 1

1

WindowsインストーラのPublishProduct標準アクションは、ProductCodeプロパティを使用してこのレジストリキーを作成します。GUIDが変更されている場合、これはメジャーアップグレードを実行しているため、ビルドごとにProductCodeが変更されているためです。

この動作( ARPSYSCOMPONENTプロパティ)を抑制する方法を考えることができますが、正直なところ、これはほとんど価値がなく、インストーラーの脆弱性を高めるのに役立つだけです。FWIW、他の有名企業がインストーラーで何かをしているのを見たからといって(特にマルチプラットフォームの企業)、それがエミュレートするのが良いことを意味するわけではありません。

ところで、なぜ安全でないレジストリキーの名前が気になるのかを知るのに役立つかもしれません。おそらく、あなたはいくつかの自動化を行おうとしています。その場合は、WindowsインストーラーにWin32およびCOM自動化インターフェイスがあり、インストールされている製品に関する情報をMSIに照会できることを知っておくと役立つ場合があります。WMIプロバイダーもありますが、品質は非常に低くなっています。

于 2012-04-12T10:25:50.947 に答える