升级 MSI 应用程序时出错

Getting an error while upgrading an MSI application

我在 Windows 2003 服务器上升级一个软件时出现以下错误。

"Error 1260 : Windows cannot open this program because it has been prevented by a software restriction policy. For more information, open event viewer."

我在互联网上搜索了很多,有一件事我知道,这个错误的发生是因为一个 Windows 的安全更新,KB2918614。我卸载了该更新并尝试升级我的产品,对我来说效果很好。

但我的问题是,如果不卸载该更新,我如何才能使软件升级成功?

这是我在失败时得到的一些日志:

MSI (s) (E4:24) [10:39:07:097]: SECREPAIR: Hash Database: C:\WINDOWS\Installer\SourceHash{97353D18-281D-42B5-8855-21E08089EFB8}

MSI (s) (E4:24) [10:39:07:128]: SECREPAIR: CryptAcquireContext succeeded

MSI (s) (E4:24) [10:39:07:878]: SECREPAIR: filename: **********.msi Stored Hash Value:+VE6k8PVr******************RjSWBjatbw= Current Hash:jhsyK1CivGh*************V2MlyUZsICUx83w=

MSI (s) (E4:24) [10:39:07:878]: SECREPAIR: UAC not supported and could not take approval from user

MSI (s) (E4:24) [10:39:07:878]: SECUREREPAIR: SecureRepair Failed. Error code: 4ec4E6A3388

终于找到答案了!!
Microsoft 提供了另一个更新来摆脱当前的安全更新 KB2918614。 Here is the Microsoft article

在这篇文章中,他们提到了一些注册表更改。进行这些更改后,我的问题得到解决。以下是这些注册表更改:

Locate and then click the following subkey in the registry:

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer

On the Edit menu, point to New, and then click DWORD Value.

Type SecureRepairPolicy for the name of the DWORD, and then press Enter.

Right-click SecureRepairPolicy, and then click Modify.

In the Value data box, type 2, and then click OK.

Locate and then click the following subkey in the registry:

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer

On the Edit menu, point to New, and then click Key.

Type SecureRepairWhitelist for the name of the key, and then press Enter.

Double-click the SecureRepairWhitelist key to open it.

On the Edit menu, point to New, and then click String Value. Create String Values that contain the product codes (including braces {}) of the products that have to be added to the Safe Recipients list.