今天重装系统,在装完vs2008,升级sp1时报了个错,错误如下:
Exe (E:\GenPlan Company Project\VS2008SP1CHSX1512981\vs90sp1\VC_IA64Runtime.exe) succeeded.
[8/1/2009, 23:21:59] Action complete
[8/1/2009, 23:21:59] Exists: evaluating...
[8/1/2009, 23:21:59] (IronSpigot::RegKeyT<class ATL::CRegKey>::Evaluate) RegKey: HKLM\SOFTWARE\Microsoft\VisualStudio\9.0 exists.
[8/1/2009, 23:21:59] Exists evaluated to true
[8/1/2009, 23:21:59] (IronSpigot::ExeInstallerBase::ExeInstallerBase) Created new ExePerformer for Exe item
[8/1/2009, 23:21:59] (IronSpigot::CartmanExeInstallerBase::CartmanExeInstallerBase) Created new CartmanExePerformer for Exe item
[8/1/2009, 23:21:59] (IronSpigot::CartmanExeInstaller::CartmanExeInstaller) In CartmanExeInstaller::CartmanExeInstaller
[8/1/2009, 23:21:59] (IronSpigot::CompositePerformerBaseT<class IronSpigot::MsiInstaller,struct IronSpigot::MspInstaller,struct IronSpigot::MultipleMspInstaller,class IronSpigot::ExeSelectingPerformer<class IronSpigot::ExeInstaller,class IronSpigot::CartmanExeInstaller> >::PerformAction) Created new ExePerformer for Exe item
[8/1/2009, 23:21:59] Action: Performing Action on Exe at E:\GenPlan Company Project\VS2008SP1CHSX1512981\vs90sp1\dotnetfx35langpack_x86zh-CHS.exe...
[8/1/2009, 23:21:59] (IronSpigot::CartmanExeInstallerBase::PreCreateProcess) In PreCreateProcess
[8/1/2009, 23:21:59] (IronSpigot::CartmanExeInstallerBase::PreCreateProcess) m_pSetupWatcher->Connect succeeded
[8/1/2009, 23:21:59] (IronSpigot::ExeInstallerBase::Launch) Launching CreateProcess with command line = dotnetfx35langpack_x86zh-CHS.exe /q /norestart /progress CartmanSetupExeWatcher277306079
[8/1/2009, 23:21:59] (IronSpigot::CartmanExeInstallerBase::PostCreateProcess) PostCreateProcess succeeded
[8/1/2009, 23:22:26] (IronSpigot::ExeInstallerBase::EnsureExitCodeIsAnMSIErrorCode) Original exit code: E:\GenPlan Company Project\VS2008SP1CHSX1512981\vs90sp1\dotnetfx35langpack_x86zh-CHS.exe returned non-MSI error code: 0x1 - 函数不正确。
[8/1/2009, 23:22:26] (IronSpigot::ExeInstallerBase::PerformAction) Exe log file(s) :
[8/1/2009, 23:22:26] (IronSpigot::ExeInstallerBase::PerformAction) C:\Users\ADMINI~1\AppData\Local\Temp\dd_dotnetfx35error_lp.txt
[8/1/2009, 23:22:26] (IronSpigot::ExeInstallerBase::PerformAction) C:\Users\ADMINI~1\AppData\Local\Temp\dd_dotnetfx35install_lp.txt
[8/1/2009, 23:22:26] (IronSpigot::ExeInstallerBase::PerformAction) C:\Users\ADMINI~1\AppData\Local\Temp\dd_depcheck_NETFX_EXP_35.txt
[8/1/2009, 23:22:26] (IronSpigot::ExeInstallerBase::PerformAction) Exe (E:\GenPlan Company Project\VS2008SP1CHSX1512981\vs90sp1\dotnetfx35langpack_x86zh-CHS.exe) failed with 0x80070643 - 安装时发生严重错误 .
[8/1/2009, 23:22:26] (IronSpigot::ExeInstallerBase::PerformAction) Log File: dd_dotnetfx35error_lp.txt
[8/1/2009, 23:22:26] (IronSpigot::ExeInstallerBase::PerformAction) Log File: dd_dotnetfx35install_lp.txt
[8/1/2009, 23:22:26] (IronSpigot::ExeInstallerBase::PerformAction) Log File: dd_depcheck_NETFX_EXP_35.txt
[8/1/2009, 23:22:26] (IronSpigot::ExeInstallerBase::PerformAction) PerformOperation on exe returned exit code 1603 (translates to HRESULT = 0x80070643)
[8/1/2009, 23:22:26] Action complete
[8/1/2009, 23:22:26] (IronSpigot::LogUtils::LogFinalResult) Final Result: Installation failed with error code: (0x80070643), 安装时发生严重错误
[8/1/2009, 23:22:26] Action complete
这个错误可以看出是个dotnetfx35langpack_x86zh-CHS.exe中文包的问题,原来是vs2008 中文版的安装时已经安装了中文版,但是sp1补丁没这么聪明,所以重复了,就抱错了. 那怎么解决,试了删除不行,方法有两种:
办法一是改安装脚本ParameterInfo.xml绕过语言包的安装,办法二是安装到该包包时骗过安装程序返回成功结果就可以。
第二个办法比较简单:
首先把SP1的所有文件复制到硬盘上,打开vs90sp1文件夹,然后复制一份该文件夹下的VC_x86Runtime.exe改名dotnetfx35langpack_x86zh-CHS.exe替换该目录的dotnetfx35langpack_x86zh-CHS.exe,然后再运行SPInstaller.exe安装即可。
本文由VS软件圈(vssoft.net)发布,不代表VS软件圈立场,转载联系作者并注明出处:https://vssoft.net/vsazwt/VS2019anzhuangwenti/2020/0725/4786.html