文章目录
- vs - vs2013/vs2019工程文件的区别
- 概述
- 笔记
- sln文件的区别
- VisualStudioVersion
- vcxproj文件的区别
- ToolsVersion
- PlatformToolset
- 备注
- 更方便的方法
- END
vs - vs2013/vs2019工程文件的区别
概述
为了避免安装UCRT的问题,想将手头的vs2019工程降级为vs2013工程。
不想重新建立vs2013工程,太麻烦了, 烦人。
想着能不能将vs2019的工程文件改一下,就能用vs2013打开直接编译呢?
尝试一下。
笔记
工程文件主要有2个 .sln, .vcxproj
sln文件的区别
VisualStudioVersion
vs2019-sln
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.34902.97
vs2013-sln
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.40629.0
vcxproj文件的区别
ToolsVersion
只有vs2013工程有这个属性
vs2019-vcxproj
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
vs2013-vcxproj
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
PlatformToolset
vs2019-vcproj
<PlatformToolset>v142</PlatformToolset>
vs2013-vcproj
<PlatformToolset>v120</PlatformToolset>
备注
好像主要区别就上面这些,尝试改一下vs2019的.sln和.vcxproj, 然后用vs2013打开试试。只要能正常打开工程编译就行。
用vs2013直接载入vs2019的.sln, 是可以直接打开的,vs没有做判断。
用vs2013编译工程时,才报错。
错误 1 error MSB8020: The build tools for v142 (Platform Toolset = 'v142') cannot be found. To build using the v142 build tools, please install v142 build tools. Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-click the solution, and then selecting "Upgrade Solution...". C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.Cpp.Platform.targets 64 5 test
打开配置,改一下平台工具集
再编译,居然直接编译过了…
VS2013对高版本的VS的工程的兼容性这么好么?对于程序员来说真友好啊:P
单步调试也没问题。
直接运行也没问题。
O了。
那可以尝试将手头的VS2019工程用VS2013的IDE打开,改一下平台工具集,全部编译成VS2013的工程输出。
如果用到非VSIDE编译的工程(e.g. openssl3.2, 用CMake编译的),将对应工程改成VS2013环境配置,再编译一次就好了。
更方便的方法
我这装的VS2013update5, 建立工程时巨慢,不想用。
尝试用VS2019打开VS2019的工程,将平台工具集改成VS2013的, 效果一样,测试过了,需要的是VS2013的DLL.
测试环境Win7x64-7600
将缺少的VS2013的DLL补全就行,不需要UCRT.
VS2013DLL的位置 C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\redist\x64\Microsoft.VC120.CRT
只有装了VS2013之后,才会在VS2019中看到VS2013工具链。
也装了VS2008, 在VS2019中看不到VS2008的工具链。
这说明,VSIDE不支持VS2008的工具链。