从版本控制拉取后Visual C++附加目录丢失问题求助
解决Visual C++项目拉取后附加包含目录/依赖项为空的问题
我之前也碰到过一模一样的糟心事!别着急,大概率不用手动重新添加目录,试试下面这些步骤:
先纠正一个误区:.vcxproj.filters不负责编译路径配置
首先得明确:.vcxproj.filters文件只是用来在VS的解决方案资源管理器里分类显示文件的,和编译时的附加包含目录、链接依赖项完全没关系——它有内容不代表编译配置会被识别。检查你的.vcxproj文件是否真的包含了配置
关闭VS,用记事本或者VS的XML编辑器打开项目文件夹下的.vcxproj文件,查找这两个关键节点:<AdditionalIncludeDirectories>(对应C/C++ -> 常规 -> 附加包含目录)<AdditionalDependencies>(对应链接器 -> 输入 -> 附加依赖项)
如果这两个节点是空的,那说明你在原电脑上修改配置后,没把更新后的.vcxproj文件提交到仓库里——回到原开发电脑,确认配置正确后,重新提交.vcxproj文件即可。
如果节点里有内容(而且是相对路径,比如
$(SolutionDir)MyHeaders;这种),那问题大概率出在VS的本地缓存上。清除VS本地缓存,让项目重新加载配置
VS会生成一些本地缓存文件,这些文件不应该提交到代码仓库,如果不小心提交了,拉到另一台电脑后会导致配置冲突:- 完全关闭Visual Studio
- 删除解决方案根目录下的
.vs隐藏文件夹(如果有的话) - 删除解决方案根目录下的
.suo文件(如果有的话) - 重新打开解决方案,VS会重新解析
.vcxproj里的配置,这时候附加包含目录和依赖项应该就能正常显示了。
卸载并重新加载项目
如果清除缓存后还是不行,试试这个操作:
在解决方案资源管理器里右键你的项目,选择「卸载项目」,等项目变成灰色后,再右键它选择「重新加载项目」。这个操作会强制VS重新读取.vcxproj的配置,有时候能解决一些奇怪的加载问题。预防措施:用相对路径+配置.gitignore
为了避免以后再碰到这个问题:- 所有附加包含目录和依赖项都用相对路径配置,比如用
$(SolutionDir)表示解决方案根目录,或者../ThirdParty/Lib这种相对路径,确保在不同电脑上项目结构一致时路径能正确解析。 - 给仓库添加
.gitignore文件,排除VS的本地缓存文件:.vs/、*.suo、*.user这些都应该忽略,只提交.vcxproj、.vcxproj.filters、.sln和源码文件。
- 所有附加包含目录和依赖项都用相对路径配置,比如用
内容的提问来源于stack exchange,提问作者Dan
相关产品推荐
相关产品推荐

