0

使用 InstallShield 安装时,是否可以在以下注册表路径中使产品键具有固定名称而不是 GUID

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

以及当前用户安装和 32 位操作系统的替代路径

基本上我想要类似的东西

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

1 回答 1

1

Windows Installer 的 PublishProduct 标准操作使用 ProductCode 属性来创建此注册表项。如果您的 GUID 正在更改,这是因为您正在进行重大升级,因此每次构建都会更改您的 ProductCode。

我可以想办法抑制这种行为(ARPSYSCOMPONENT 属性),但老实说,它没有什么价值,只会增加安装程序的脆弱性。FWIW,仅仅因为您看到其他一些知名公司在安装程序中做某事(尤其是多平台公司)并不意味着模仿是一件好事。

顺便说一句,了解您为什么关心 obsecure 注册表项的名称可能会有所帮助。也许你正在尝试做一些自动化。如果是这种情况,了解 Windows Installer 具有 Win32 和 COM 自动化接口可能会有所帮助,该接口允许您查询 MSI 以获取有关已安装产品的信息。还有一个 WMI 提供程序,但它的质量非常低。

于 2012-04-12T10:25:50.947 回答