安装VS.NET 2005 SP1补丁全攻略

2010-08-28 10:54:03来源:西部e网作者:

我第一次安装这个补丁的时候就挂了,搞得VS2005和相关的一些程序都不能运行,后来在网上找到了一些解决方法,结合自己的实际体验,写了这篇教程。

补丁相关资料:

简体中文版补丁名称:VS80sp1-KB926604-X86-CHS.exe
版本: 50727.762
知识库 (KB) 文章: KB928957
发布日期: 2006/12/14
简体中文版补丁大小:430.9 MB
简体中文版补丁下载地址:
http://download.microsoft.com/download/8/0/7/8071514d-9370-45c3-8af1-4ff09a70e59d/VS80sp1-KB926604-X86-CHS.exe
官方建议安装时硬盘空间至少为: 6.2GB
安装完成且清理临时文件后空间约减少:500MB左右

SP1的安装过程到剖析:

以下内容引用自http://blog.joycode.com/jiangsheng

1. 解压到%temp%\临时目录(对于我的Visual Studio 2005 Team System,这需要C:\Documents and Settings\Administrator\Local Settings\Temp下面1个多GB的空间)
2. 把自己复制到%temp%下(400多MB)
3. 把自己复制到%windows%\Installer下(C:\Windows Installer下400多MB)
4. 解压到%windows%\Installer\PatchCache(1个多GB)
5. 安装过程中还会生成临时文件(C:\Config.msi和%temp%下面的日志文件)。

安装注意事项:

1. 安装时间会非常长,看到很多网友说如果机器配置不是很高达到了3小时,一般的话也需要1个小时左右。我的本本配置比较高,用了不到半个小时就装完了。

2. 安装前检查你的C盘是否有大于6G的空余空间,这是官方要求的数字。但也有人只有不到2G也顺利安装了,这主要取决VS自定义安装的多少。据闻是最占空间的是VC,如果没有VC完全用不了2G。但由于我装VS2005就是为了用VC,所以这点没有实践证明过。较保险的方法是把环境变量temp和tmp ,虚拟内存都定位到其它盘上,以腾出空间。

3. 如果你以前安装过web application project,在安装vs2005 sp1以前请先把他卸载,否则可能会安装失败。

4. vs2005sp1的补丁包是把你机器上所有单独装过vs2005的版本的补丁都打上,如果机器上同时装了Visual Web Developer Express和Visual Studio team sutie,那么他就要运行安装补丁两次。

安装过程常见问题:

1. 数字签名认证的问题
当您尝试运行 Microsoft Windows Server 2003 或 Microsoft Windows XP, 计算机上安装大 MicrosoftWindowsInstaller .msi) 程序包或大型 MicrosoftWindowsInstaller 修补程序 (.msp) 程序包您可能会收到以下错误信息:
错误 1718。 (FileName)文件被数字签名策略拒绝。

2. C盘空间的问题
提示C盘空间不足,不能成功安装SP1,错误代码2908。
原因1:Windows Installer设计的一个特性是可以验证文件的数字签名。但是这次的补丁太大了,要验证签名的话基本上把内存都吃光了(要1GB左右的内存)。
原因2:Windows Installer设计的一个特性是会在C盘生成一个$PatchCache$文件,把补的文件再存一遍,对于这次的补丁嘛,这个大约会消耗掉1.3GB的空间。

结论就是内存不足、C盘空间不够的系统,如果直接安装的话基本就挂了。

解决方案:

针对原因1:

参考链接:http://support.microsoft.com/kb/925336
解决数字签名认证的问题步骤:
1. 单击 开始单击 运行 , 键入 控件 secpol.msc , 然后单击确定 。
2. 打开“安全设置->软件限制策略”。
注意如果列出“没有软件限制”,需要右键单击“软件限制策略”, 然后单击“新建策略”。
3. 在“对象类型->强制”。
4. 点选“除本地管理员以外的所有用户”, 并单击“确定”。
5. 重新启动计算机。
要点:之后在执行以上步骤, 本地管理员可安装 .msi 软件包或 .msp 包。 通过以下以前步骤之后安装程序包, 重置强制级别。 在步骤 5, 单击 所有用户 代替 除本地管理员以外的所有用户。

针对原因2:不要直接打补丁,用下面的批处理:

reg export HKLM\Software\Policies\Microsoft\Windows\Installer installer.reg
reg add HKLM\Software\Policies\Microsoft\Windows\Installer /v MaxPatchCacheSize /t REG_DWORD /d 0 /f
net stop msiserver
start /wait VS80sp1-KB926604-X86-CHS.exe
reg delete HKLM\Software\Policies\Microsoft\Windows\Installer /v MaxPatchCacheSize /f
reg import installer.reg
net stop msiserver
del /q installer.reg 2>nul
将上面的保存为InstallVS2005SP1.bat,再执行该文件以启动安装补丁,即可禁用缓存,记得这个文件要放在和补丁同一个目录。
 
-mode: char; line-height: 120%">安装失败后的补救措施:
不能成功安装SP1,错误代码2908,然后VS2005就挂了,我是在第一次安装SP1提示空间不足,然后再次安装,空间还是不足时出现的。

以下这个是网友的经历:

VS 2005 SP1 Beta doesn`t want to install It happened to me as well with the release version of SP1.
我安装这个版本的sp1时也出现了这个问题(指错误代码:2908).不只是我的VS2005 Team System 挂掉了,而且.NET 2.0 Framework一样不能使用,包括IIS和应用程序,MSN也不能正常使用。我试着卸载vs2005,但是我再次安装vs2005时,在安装过程中又出现了一个错误。

这个是在网上找到的解决方法,其参考链接是一个英文论坛:

1. 删除VS2005
2. 删除.NET FRAMEWORK 2.0
3. 删除%windir%\WinSxS\ 下的 Policies 文件夹
4. 安装.NET Framework 2.0
5. 安装VS2005 & SP1

实践证明这个方法是可行的,不需要重装系统。

这里补充以下,在卸载了VS2005后,有很多VS2005附带的组件是没有卸载的,那些组件都不需要卸载,之要卸载再卸载.NET FRAMEWORK 2.0就可以了。

关键词:VS.NET