Visual Studio 2008 SP1 安装失败的解决方法 之前经常看到有别人提问VS2008 SP1安装失败如何解决。但是自己虽然在多台机器上安装过多次VS2008 SP1却从没失败过。直到最近在Windows 7上安装VS2008 SP1终于出错了的。这里介绍2个可能出现的错误及解决办法。
1..NET Framework语言包安装出错。我就是在这一步出错的,W7装的是英文版且没装中文语言包,VS2008装的是简体中文版,SP1也是简体中文版。当安装SP1到.NET Framework Language Pack的时候出错了的,整个安装过程被中断并结束。其实这个语言包本来就有点小问题,就是刚发布SP1后大家普遍碰到的安装SP1后智能提示变英文的问题。而在W7下安装语言包出错可能是因为.NET Framework 3.5 SP1已经作为W7的一部分,无法通过其他安装程序安装,就像Vista下无法删除和安装.NET Framework 2.0的相关组件。我解决语言包安装出错这个问题的方法是把iso打开,找到vs90sp1目录,并手动安装这些补丁。正常情况下是执行了SPInstaller.exe,然后它会调用这个目录下的安装包。我们可以手动执行这些安装包,这些安装包大部分用于修复之前已知的错误,dotnetfx35.exe是.NET Framework 3.5 SP1,因为W7已经带了3.5 SP1,所以可以不装。最重要的是vs90sp1-KB945140-x86-chs.msp,它才真正安装了SP1,安装过程会持续较长的时间。正常安装的时候也经常会在这一步卡很长时间。安装完成后进入VS,看关于,Microsoft Visual Studio 2008版本9.0.30729.1 SP,.NET Framework版本3.5 SP1,这样基本上是安装完成了的。如果安装完以后VS菜单中的文字又有中文又有英文(这大部分出现在英文系统上装中文VS),到工具选项区域设置,选择中文(简体)。其他由于SP1包中某个组件安装错误而导致SP1无法安装的问题也可以试一下这个方法。
2.DepCheck indicates Microsoft .NET Framework 2.0a is not installed 还可能会提示DepCheck indicates [某些组件名] is not installed。这个问题经常有人碰到,一般是由于之前安装的.NET Framework引起的。最快的办法是卸载之前安装的.NET Framework,然后重新安装,一般即可解决问题。
附:.NET Framework Setup Cleanup Utility下载:http://astebner.sts.winisp.net/Tools/dotnetfx_cleanup_tool.zip
Windows 7下安装Visual Studio 2008 sp1
将ParameterInfo.xml文件中以下部分删除即可。
<Exe Name="dotnetfx35.exe" URL="http://go.microsoft.com/fwlink/?LinkId=119353&clcid=0x409" DownloadSize="242743296" SystemDriveSize="859390404" InstalledProductSize="0" InstallCommandLine="/q /norestart /lang:ENU" UninstallCommandLine="/q /uninstall" CanonicalTargetName="#(loc.dotnetfx35sp1)" ExeType="Cartman" LogFileHint="%temp%/dd_dotnet*.txt|%temp%/dd_net_framework*.txt|%temp%/dd_depcheck*.txt|%temp%/../dd_dotnet*.txt|%temp%/../dd_net_framework*.txt|%temp%/../dd_depcheck*.txt" HashValue="0582515BDE321E072F8673E829E175ED2E7A53E803127C50253AF76528E66BC1">
<ApplicableIf>
<GreaterThan LeftHandSide="3.5.30729.01" BoolWhenNonExistent="true">
<RegKeyValue Location="HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/NET Framework Setup/NDP/v3.5/Version" />
</GreaterThan>
</ApplicableIf>
</Exe>
<Exe Name="dotnetfx35langpack_x86zh-CHS.exe" URL="http://go.microsoft.com/fwlink/?LinkId=118146&clcid=0x409" DownloadSize="28694568" SystemDriveSize="12273504" InstalledProductSize="0" InstallCommandLine="/q /norestart" UninstallCommandLine="/q /uninstall /norestart" CanonicalTargetName="#(loc.dotnetfx35lp)" ExeType="Cartman" LogFileHint="%temp%/dd_dotnet*.txt|%temp%/dd_net_framework*.txt|%temp%/dd_depcheck*.txt|%temp%/../dd_dotnet*.txt|%temp%/../dd_net_framework*.txt|%temp%/../dd_depcheck*.txt" HashValue="354EF066A4CF16B9CC0B2F46072120B2FE5A5058947969901F8A157AAFF99351">
<ApplicableIf>
<And>
<Equals LeftHandSide="x86" BoolWhenNonExistent="false">
<TargetArchitecture />
</Equals>
<GreaterThan LeftHandSide="3.5.30729.01" BoolWhenNonExistent="true">
<RegKeyValue Location="HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/NET Framework Setup/NDP/v3.5/2052/Version" />
</GreaterThan>
</And>
</ApplicableIf>
</Exe>
<Exe Name="dotnetfx35langpack_x64zh-CHS.exe" URL="http://go.microsoft.com/fwlink/?LinkId=118151&clcid=0x409" DownloadSize="34967080" SystemDriveSize="17534816" InstalledProductSize="0" InstallCommandLine="/q /norestart" UninstallCommandLine="/q /uninstall /norestart" CanonicalTargetName="#(loc.dotnetfx35lp)" ExeType="Cartman" LogFileHint="%temp%/dd_dotnet*.txt|%temp%/dd_net_framework*.txt|%temp%/dd_depcheck*.txt|%temp%/../dd_dotnet*.txt|%temp%/../dd_net_framework*.txt|%temp%/../dd_depcheck*.txt" HashValue="4CC0A5EA3E1497BA6B7C006CC57C0A686282DF02EC4E5B0EBDBC9F0B2E4728B5">
<ApplicableIf>
<And>
<Equals LeftHandSide="x64" BoolWhenNonExistent="false">
<TargetArchitecture />
</Equals>
<GreaterThan LeftHandSide="3.5.30729.01" BoolWhenNonExistent="true">
<RegKeyValue Location="HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/NET Framework Setup/NDP/v3.5/2052/Version" />
</GreaterThan>
</And>
</ApplicableIf>
</Exe>