文章目录
- vs - 在win10中安装vs2013update5
- 概述
- 笔记
- 直接安装vs2013-update5报错
- 先安装vs2013原版
- 安装 vs2013 update5
- 测试
- 备注
- END
vs - 在win10中安装vs2013update5
概述
用VS2019写的程序,在早期windows(e.g. win7, win8.1)上安装时,需要UCRT。
UCRT是操作系统的一部分,如果不是最新的早期windows, 必须安装补丁。
这让用户就很不爽了。
软件说明书要在安装这块写很多关于各种早期windows安装时,如何安装补丁的说明。
查了一下, UCRT是VS2015引入的。
如果想避免UCRT安装的问题, 程序就只能用VS2013写。
下载了 cn_visual_studio_ultimate_2013_rc_x86_dvd_2760148.iso, mu_visual_studio_2013_update_5_x86_dvd_6815499.iso
尝试装一下。
如果能装上,以后不是非必须VS2019, 那就用VS2013写。
笔记
直接安装vs2013-update5报错
开始直接装 mu_visual_studio_2013_update_5_x86_dvd_6815499.iso,装不了,报错如下。
查了资料, 有同学提到这个问题,没说咋解决。
点击报错框的日志,看看可能是啥原因?
[20350:20328][2024-06-01T11:24:29]i052: Condition 'NOT (CurrentOperation = "Uninstall")' evaluates to true.
[20350:20328][2024-06-01T11:24:29]i052: Condition 'NOT (CurrentOperation = "Uninstall")' evaluates to true.
[20350:20328][2024-06-01T11:24:29]i052: Condition 'NOT (CurrentOperation = "Uninstall")' evaluates to true.
[20350:20328][2024-06-01T11:24:29]i052: Condition 'NOT (CurrentOperation = "Uninstall")' evaluates to true.
[20350:20328][2024-06-01T11:24:29]i052: Condition 'NOT (CurrentOperation = "Uninstall")' evaluates to true.
[20350:20328][2024-06-01T11:24:29]i052: Condition 'NOT (CurrentOperation = "Uninstall")' evaluates to true.
[20350:20328][2024-06-01T11:24:29]i052: Condition '(CurrentOperation = "Install") OR (CurrentOperation = "Repair")' evaluates to true.
[20350:20328][2024-06-01T11:24:29]i000: MUX: Stop Block: NoApplicableUpdates : Update 5 does not apply, or is blocked by another condition on your computer.
[20350:20328][2024-06-01T11:24:29]i000: MUX: Detect Completed
[20350:20328][2024-06-01T11:24:29]i000: MUX: Wait for View to be loaded
[20350:2044C][2024-06-01T11:24:29]i000: MUX: Detect Completed, now create view
[20350:20328][2024-06-01T11:24:29]i000: MUX: View loaded
[20350:20328][2024-06-01T11:24:29]i000: MUX: Go to Blocker page.
[20350:20328][2024-06-01T11:24:29]i199: Detect complete, result: 0x0
看到日志说:
- Condition ‘(CurrentOperation = “Install”) OR (CurrentOperation = “Repair”)’ evaluates to true.
- 没有应用可以升级 “NoApplicableUpdates : Update 5 does not apply”
这就大概能猜出来了,必须要先安装vs2013原版,再安装vs2013-update5才行。
先安装vs2013原版
cn_visual_studio_ultimate_2013_rc_x86_dvd_2760148.iso
用win10资源管理器打开cn_visual_studio_ultimate_2013_rc_x86_dvd_2760148.iso
在光驱中运行 vs_ultimate.exe
默认安装路径为 C:\Program Files (x86)\Microsoft Visual Studio 12.0
默认安装选项中空出的那2项,确实不需要。
杀毒软件会拦截VS2013的安装过程,需要人看着允许安装。
正常安装完。
启动了一下,说是发行预览版,要升级。
要不就是要登录,要不就是要升级,没有输入密钥的地方。
点击退出VS2013RC版。
安装 vs2013 update5
mu_visual_studio_2013_update_5_x86_dvd_6815499.iso
用win10资源管理器打开mu_visual_studio_2013_update_5_x86_dvd_6815499.iso
运行光驱中的VS2013.5.exe
勾选"同意", 然后安装
正常安装完成.
启动VS2013-update5
VS2013启动后,显示正在更新新闻,然后就自动退出了…
应该是 mu_visual_studio_2013_update_5_x86_dvd_6815499.iso 这个安装程序不对。
下载了一个 cn_visual_studio_ultimate_2013_with_update_5_x86_dvd_6816649.iso, 这个应该直接可以安装(不需要vs2013原版)。
我就不卸载已经安装的vs2013, 直接安装 cn_visual_studio_ultimate_2013_with_update_5_x86_dvd_6816649.iso。
用win10资源管理器打开cn_visual_studio_ultimate_2013_with_update_5_x86_dvd_6816649.iso,运行光驱中的vs_ultimate.exe
确实,这个版本是自带vs2013 + update5的,一个安装包就搞定。
那我先卸载了已经安装的vs2013,将前2个没用的vs2013的iso删掉。
卸载的时候显示一直在创建还原点,特别的慢。
取消卸载,关闭计算机,呆一会开机,重新卸载,这时卸载的快多了。
等待卸载完成。
用win10资源管理器打开cn_visual_studio_ultimate_2013_with_update_5_x86_dvd_6816649.iso,运行光驱中的vs_ultimate.exe
默认的安装路径 为 C:\Program Files (x86)\Microsoft Visual Studio 12.0
安装组件和VS2013原版一样,都是默认没勾那2项。
等待安装完成。
安装完成,点击启动按钮。
VS2013update5正常启动,不会自己退出。
官方的url应该是变了,产品视频和公告是空的。
找前排同学留下的密钥,输入好使。
安装完成。
测试
新建一个 x64 MFC dlg 工程,确认编译选项,编译成x64-release版。
打开vmware中的win7x64镜像,回到快照win7-7600, 这是原始版本,没打SP1补丁。
拷贝release.exe到win7-7600,运行,提示少mfc120u.dll
拷贝 C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\redist\x64\Microsoft.VC120.MFC 中的2个dll到测试环境
再运行,提示少 MSVCR120.dll
拷贝 C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\redist\x64\Microsoft.VC120.CRT 中的3个dll到测试环境
再运行,可以正常运行了。
那VS2013update5环境就好了。
备注
微软官方光想着自己爽了,到了VS2015之后,程序中必然会用到UCRT, 但是UCRT是操作系统的一部分,无法通过打包来解决。
如果用户环境没打补丁(e.g. win7必须是win7SP1), 必须打补丁,3个补丁, 其中 windows6.1-kb976932-x64_74865ef2562006e51d7f9333b4a8d45b7a749dab.exe 是900+MB.
另外的2个补丁虽然不大(windows6.1-kb2533552-x64_0ba5ac38d4e1c9588a1e53ad390d23c1e4ecd04d.msu, Windows6.1-KB2999226-x64.msu),在安装程序中也不好判断,也需要手工来装。
如果不是必须,如果有可能,还是用VS2013来写工程,对于程序员来说,VS2019/VS2022和VS2013区别不大。
看资料时,看到前排同学的笔记,他们是因为一个第三方库使用VS2015编译的,他们那个工程打包才开始包含VS2015的DLL。
UCRT对于MS倒是方便了,对于程序员来说挺恶心的。