1. 背景
MSB4019 未找到导入的项目“C:\Users\Administrator\Desktop\Debug.props”。请确认 <Import> 声明中的路径正确,且磁盘上存在该文件。 opencv C:\Users\Administrator\Desktop\opencv\opencv\opencv.vcxproj)
从vs的工作目录中将vs项目文件夹移出至其它文件目录下。打开vs项目,点击运行,就会出现如上错误。
2. 解决方法
2.1 打开报错文档。
1、 报错文档具体地址如下图红线所示。
2、错误行可从vs错误列表得知,如下图,我的错误行是66行。
错误代码行:
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\Debug.props" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
<Import Project="..\..\Release.props" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
从中发现:
第1个ImportGroup与第3,4个ImportGroup比较多了:
<Import Project="..\..\Debug.props" />
第2个ImportGroup Label与第3,4个ImportGroup比较多了:
<Import Project="..\..\Release.props" />
2.2 删除多出的语句。
<Import Project="..\..\Debug.props" />
<Import Project="..\..\Release.props" />
注意:记得保存文档。
2.3 重启VS项目。
从中发现:
1、MSB4019错误已经解决;
2、出现C1083错误“无法打开包括文件: “opencv2/opencv.hpp”: No such file or directory opencv”
由此可知:
属性管理器中的包括文件目录设置错误。
2.4 修改属性管理器包含目录。
1、属性管理器在视图》其它窗口》属性管理器中
2、双击你使用的编译方式,如图我使用的是“Debug|Win32”
3、根据你当前项目所在的路径修改包含目录。
4、如果你使用的是项目属性表,直接添加现有属性表即可
3. 总结
对于vs项目移动工作目录后产生的错误,其原因是属性管理器相关目录的路径错误,故只需先删除vcxproj文件中的路径,然后根据移动后的工作目录路径修改属性管理器相关目录(或者重新添加项目属性表)即可。