错误:文件被数字签名策略拒绝(File was rejected by digital signature policy)
问题描述:
这两天给家里的台式机装上了 Windows Server 2003 R2 SP2,在安装 Visual Studio 2005 SP1 和 Windows Mobile 6 Profesional SDK 的时候,都遇到了“文件被数字签名策略拒绝”的错误。经过google,找到了解决方法,并成功解决了该问题,现提供给遇到同样问题的朋友参考。
原因分析:
Visual Studio 2005 SP1 的.msp 修补程序包和 Windows Mobile 6 Profesional SDK 的.msi安装程序包的文件都比较大,分别是451MB和454MB。我的台式机的内存是1GB,运行安装程序之前内存只剩下400MB了。当运行安装程序时,Windows Installer 会验证程序包的数字签名以确保程序包没有被篡改。这时整个程序包被加载到内存中,计算机必须拥有程序包大小所需的足够连续内存。如果计算机没有足够的连续内存,则会出现错误。由于出现错误,Windows Installer 将无法验证是否对该程序包正确地进行了签名。
解决方法:
在运行安装程序之前,修改 HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Safer\CodeIdentifiers 注册表项下面的 PolicyScope 的注册表值,将值从0改为1。如果没有这个注册表值,可以自己新建一个“DWORD 值”,命名为 PolicyScope,并将它的值设置为1即可。安装完成后,再将该注册表值改为原来的0。
为了日后使用方便,可以创建两个注册表项文件 SetPolicyScope.reg 和 ResetPolicyScope.reg,并用记事本打开进行编辑,内容分别为(虚线以内):
SetPolicyScope.reg
------------------------------------------------------------------------------------------------
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\windows\safer\codeidentifiers]
"PolicyScope"=dword:00000001
------------------------------------------------------------------------------------------------
ResetPolicyScope.reg
------------------------------------------------------------------------------------------------
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\windows\safer\codeidentifiers]
"PolicyScope"=dword:00000000
------------------------------------------------------------------------------------------------
参考:http://support.microsoft.com/kb/925336