同步Git后Visual Studio无法识别已安装的C#项目引用求助
我之前也碰到过一模一样的糟心问题——从Git拉完代码编译,几百条缺失引用和NuGet包的报错,明明NuGet管理器里显示都装好了。折腾了一圈总结出几个靠谱的解决步骤,按顺序试试:
清理并重建解决方案
先在Visual Studio里点击顶部菜单的Build -> Clean Solution,彻底清理掉旧的编译产物;之后再执行Build -> Rebuild Solution,强制重新编译整个项目。很多时候同步后的缓存残留会导致引用识别异常,这一步能解决不少基础问题。强制还原并重新安装NuGet包
右键解决方案,选择「Restore NuGet Packages」先尝试常规还原;如果没用,打开「Package Manager Console」(Tools -> NuGet Package Manager -> Package Manager Console),执行命令:Update-Package -reinstall这个命令会强制卸载并重新安装所有项目的NuGet包,能修复引用路径不匹配、包文件损坏的问题。
检查项目文件的引用路径
有时候Git同步过来的.csproj文件里可能存在绝对路径引用(比如之前开发者本地的路径),换机器后就找不到了。你可以右键报错的引用项,查看「属性」里的「路径」,如果是绝对路径,直接删除该引用,然后从NuGet重新安装对应包;或者手动编辑.csproj文件,把绝对路径改成相对路径(比如用$(SolutionDir)这类变量)。删除缓存文件夹
关闭Visual Studio,手动删除以下几个文件夹:- 解决方案根目录下的
.vs文件夹(隐藏文件夹,需要显示隐藏项才能看到) - 每个项目目录下的
bin和obj文件夹
这些文件夹里的缓存文件很容易在同步后出现冲突,删除后重新打开项目,VS会自动重新生成这些文件,大概率能解决引用识别问题。
- 解决方案根目录下的
重启Visual Studio
别笑,有时候就是VS的缓存抽风了,重启一下就能让它重新识别所有引用和NuGet包。
按这个顺序试下来,基本能解决90%以上这类问题。我当时是靠删除bin/obj加上重新还原NuGet包搞定的,祝你顺利解决!
内容的提问来源于stack exchange,提问作者user9559135

