不同vs版本之间移动项目时,可能会出现导入失败,提示Import找不到相关路径下的props文件
错误会指向vcxproj文件中的相关行
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
以本次问题为例,出错情况是vs2019建的项目,移动到vs2012下无法加载。
解决方案
打开要移植的项目vcxproj文件,第二行
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
中增加或修改ToolsVersion属性,与目标方案工具版本一致,如:
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
关闭加载失败的方案,删除方案目录中sdf文件,打开方案即可正常加载
VS版本与工具版本号对应关系
-Visual Studio 2008 - ToolsVersion 3.5
-Visual Studio 2010 - ToolsVersion 4.0
-Visual Studio 2012 - ToolsVersion 4.0
-Visual Studio 2013 - ToolsVersion 12.00
-Visual Studio 2015 - ToolsVersion 14.00
-Visual Studio 2017 - ToolsVersion 15.00
-Visual Studio 2019 - Current
-Visual Studio 2022 - Current
关于vcxproj文件说明
https://docs.microsoft.com/en-us/cpp/build/reference/vcxproj-file-structure?view=msvc-170
关于ToolsVersion
https://docs.microsoft.com/zh-cn/previous-versions/visualstudio/visual-studio-2015/msbuild/msbuild-toolset-toolsversion?view=vs-2015&redirectedfrom=MSDN
https://docs.microsoft.com/en-us/visualstudio/msbuild/msbuild-toolset-toolsversion?view=vs-2019
https://docs.microsoft.com/zh-cn/visualstudio/msbuild/msbuild-toolset-toolsversion?view=vs-2022
props文件路径
C:\Users\用户名\AppData\Local\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32.user.props
C:\Program Files (x86)\MSBuild