解决 VS2005 SP1 时“无法使用此产品的安装源,请确认安装源存在,并且您可以访问它”的错误
打sp1时,碰到 “无法使用此产品的安装源,请确认安装源存在,并且您可以访问它”的错误
在网上查到,并解决
将转载至此:
微软的操作系统和应用软件所打的补丁,比解放前穷人衣服上的补丁叠补丁还多。不过补丁多而不乱,也着实让人佩服。为了在 VS2005 上研究一下 Silverlight 应用开发,需要安装 VS2005 的 SP1 补丁程序。花了 30 分钟下载下来,双击运行,几分钟过去,报一个错误:“无法使用此产品的安装源,请确认安装源存在,并且您可以访问它。”
奇怪,“安装源”到底是指 SP1 安装文件呢,还是指已经安装的 VS2005?
本人的 OS 是 Windows server 2003 R2 企业版,打过 SP2 补丁了。VS 安装的是 Visual Studio 2005 Professional 英文版,安装包也是英文版,没错。打开临时文件夹看了看, 找到安装 Log,看到了错误:“Error 1718. File was rejected by digital signature policy”。 有的放矢,解决问题就相对容易了。
网上搜索了一下,说原因如下:
当计算机没有足够的连续内存可供 Windows Server 2003 或 Windows XP 用于验证是否对 .msi 包或 .msp 包正确进行了签名时将出现此错误。
数字签名可帮助确保程序包不会被篡改。当 Windows Installer 调用 SaferIdentifyLevel 函数时,Windows Server 2003 和 Windows XP 使用其他安全级别,即软件限制策略。
当 Windows Installer 同时调用 SaferIdentifyLevel 函数和 SAFER_CRITERIA_IMAGEHASH 标志时,整个程序包被加载到计算机上的内存中。计算机必须拥有程序包大小所需的足够连续内存。如果计算机没有足够的连续内存,则会出现错误。由于出现错误,Windows Installer 将无法验证是否对该程序包正确地进行了签名。因此,会收到“症状”部分中提到的错误消息。
解决方法一:
1.打开注册表编辑器,找到:HKEY_LOCAL_MACHINE\Software\Policies
\Microsoft\Windows\Safer\CodeIdentifiers
2.将 PolicyScope 的注册表值从0改为1。(没有就新建一个)
3.在命令行中执行 net stop msiserver,停止 Windows Installer 服务。
4.安装 SP1。
5.装完后,把步骤2中的 PolicyScope 值改回为 0.
方法二:
如果以上步骤不能解决该问题,请按照下列步骤操作:
1.管理工具-》本地安全设置-》软件限制策略。(如果如果没有软件限制,右击“软件限制策略”,新建一个。)
2.“对象类型”下双击“强制”,将第2个单选组从“所有用户”改为“除本地管理员以外的所有用户”。
3.重启,安装 SP1。
4.再恢复原先设置。