文章目錄
- 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的工具鏈。