.NET Core 2.0解决方案代码标红但编译成功,求修复策略
这种情况我之前也碰到过好几次,真的挺闹心的——明明编译能过,但满屏红标看着就烦躁!既然你常规的清理操作都试过了没用,给你几个更进阶的思路试试:
检查.NET Core SDK与Visual Studio版本兼容性
.NET Core 2.0需要搭配Visual Studio 2017 15.3及以上版本使用。先打开命令行执行dotnet --info,确认输出里有没有netcoreapp2.0对应的SDK;如果没有,重新安装对应版本的SDK。另外可以尝试修复Visual Studio(在控制面板的程序列表里找到VS,选择“修改”->“修复”),避免组件损坏导致智能感知异常。重置Visual Studio用户设置
有时候VS的个性化设置乱了会影响智能感知。依次点击工具->导入和导出设置->重置所有设置,记得先备份当前设置,然后重置后重启VS再打开解决方案。排查项目文件的引用与目标框架配置
手动打开项目的.csproj文件,确认<TargetFramework>节点的值是netcoreapp2.0,同时检查所有<PackageReference>的版本是否与.NET Core 2.0兼容——有些包的高版本可能不再支持2.0,虽然编译时可能勉强通过,但智能感知会报错。可以尝试把有疑问的包降级到兼容2.0的版本。清理VS工作区的.suo文件
VS的.suo文件保存着解决方案的工作区状态,一旦损坏就可能导致各种奇怪的智能感知问题。关闭VS,找到解决方案根目录下的.vs隐藏文件夹(需要显示隐藏文件才能看到),删除里面的.suo文件,然后重新打开解决方案。禁用Roslyn代码分析器排查
有时候Roslyn的分析器出故障会误报红标。右键项目->属性->代码分析,勾选“禁用所有代码分析器”,然后重启VS看看红标是否消失。如果消失了,再逐个启用分析器,找出导致问题的那个。换个编辑器验证问题
用Visual Studio Code打开同一个解决方案,看看VSC里的智能感知是否正常。如果VSC没问题,那基本可以确定是VS本身的问题,继续排查VS的组件或设置;如果VSC也有红标,那就要重点检查项目配置或SDK的深层问题了。
内容的提问来源于stack exchange,提问作者miechooy




