我有一台装有 Windows XP Professional x64 的电脑。
我正在尝试安装 SQL Server Express x64 版本。一切顺利,直到安装生成器尝试设置必要的安装文件。
此时我收到以下错误:
SQL 安装程序遇到以下错误:
MsiGetProductInfo 无法检索产品代码为 {A2122A9C-A699-4365-ADF8-68FEAC125D61} 的软件包的产品版本,错误代码为:1605。
我真的不知道这是怎么回事。有谁能帮我吗?
答案1
根据这:
MSDN 上的 Windows Installer 错误代码记录错误地列出了 1605,表示目标驱动器上可用空间不足;DesktopEngineer.com但是,指出 1605 表示缺少产品,需要成功完成自定义操作:1605 ERROR_UNKNOWN_PRODUCT 此操作仅对当前已安装的产品有效。
链接提供的解决方案是这样的。
> 解决方案
反复试验可以解决问题。因此,通过排除法,以下简单的解决方案似乎相当有效。
删除 HKLM\Software\Classes\Installer\UpgradeCodes 中包含 56A968A049C8C7F45A7C79D2C3C8DEE9 的注册表项的父项。
在这个特殊的例子中,首先删除 7AB711B11CB5E91428E0D7F4F314C2B7 键(GUID 转换),然后成功安装 SQL Server 2008 R2:
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\UpgradeCodes\7AB711B11CB5E91428E0D7F4F314C2B7] “56A968A049C8C7F45A7C79D2C3C8DEE9”=“”
微软的举动常常令人费解。
如何简单转换GUID?
看这里:
- 运行注册表编辑器(在“开始搜索”或“运行”对话框中键入 regedit,然后按 Enter 键)并导航至 HKEY_CLASSES_ROOT\Installer\UpgradeCodes
- 取出 GUID 的第一部分并将其反转,在我的例子中它是 AA4A4B2C,其反转字符串是 C2B4A4AA。现在搜索 C2B4A4AA,您将获得匹配项,然后删除其父子项(它将是一种没有括号的 GUID)。
- 现在再次运行安装程序,它将顺利进行,没有任何麻烦。
看到这个关联关于解决方案