首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 安裝失敗 MsiGetProductInfo 找不到產品代碼:登錄升級代碼清理法

     編輯:關於SqlServer

安裝/升級 SQL Server 時出現 MsiGetProductInfo 找不到產品代碼 {GUID} 的 ProductVersion,主因是登錄升級代碼殘留導致 Windows Installer 誤判產品仍存在。

快速定位並清理步驟

  1. 記下錯誤訊息中的 GUID,例如 {F1F1E854-0CF5-7485-B999-4BE9E02D29193}。
  2. 取 GUID 第一段 F1F1E854(去掉大括號與連字號),倒序重組:
    F1F1E854 → 458E1F1F(每兩字元一組倒序)。
  3. 開啟 regedit,定位至:
    HKEY_CLASSES_ROOT\Installer\UpgradeCodes
  4. 4. 在右側或子機碼中搜尋 458E1F1F,找到後刪除其父機碼(整個升級代碼機碼)。 5. 若錯誤訊息列出多個 GUID,重複上述步驟逐一清理。 6. 關閉登錄編輯器,重新執行 SQL Server 安裝程式。

原理解析

  • Windows Installer 使用 UpgradeCode 識別產品家族,安裝前檢查是否已安裝同升級代碼的版本。
  • 手動刪除資料夾/登錄未清理 UpgradeCodes,導致 Installer 以為舊版仍在,嘗試讀取其 ProductVersion 失敗報錯。
  • GUID 倒序規則:{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} 前 8 字元(第一段)每兩字元一組反轉,對應 UpgradeCodes 子機碼名稱。

輔助工具

  • Microsoft Fix it(Program Install/Uninstall 疑難排解):自動掃描修復常見 Installer 殘留。
  • MSI 清理工具(已停用):舊版可用,新版建議用 Fix it。
  • PowerShell 快速搜尋:
    Get-ChildItem HKCR:\Installer\UpgradeCodes -Recurse | Where-Object { $_.PSChildName -like '*458E1F1F*' } | Remove-Item -Recurse -Force

預防建議

  • 務必透過「控制台 → 程式與功能」正規解除安裝 SQL Server。
  • 2. 解除安裝後再手動刪除殘留資料夾與登錄(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer 等)。 3. 使用 SQL Server 安裝精靈的「維護」→「移除」功能可最完整清理。

掌握 UpgradeCode 倒序查找技巧,快速解決 SQL Server 及其他 MSI 安裝程式的「產品代碼找不到」疑難雜症。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved