You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

ASP.NET Core 2.x升级后类库项目NETStandard.Library引用异常问题

修复.NET Framework类库项目中NETStandard.Library引用显示黄色断裂的问题

我之前处理过好几个类似的升级后引用显示异常的案例,其实这只是Visual Studio的“视觉bug”——毕竟你能正常构建且没有警告错误,就说明项目的依赖链路是完全通的。下面是几个亲测有效的修复步骤:

  • 清理Visual Studio组件缓存
    这是最常见的解决办法,VS的组件缓存有时候会卡住旧的依赖信息:

    1. 完全关闭Visual Studio
    2. 打开文件资源管理器,导航到%LOCALAPPDATA%\Microsoft\VisualStudio\15.0_<你的VS唯一标识>\ComponentModelCache(把<你的VS唯一标识>换成你电脑里对应的文件夹名,比如类似abcdef12的字符串)
    3. 删除这个文件夹里的所有文件
    4. 重新启动Visual Studio,检查引用状态
  • 检查并手动修复项目文件
    升级过程中项目文件可能残留旧配置,导致VS识别异常:

    1. 右键出现问题的类库项目,选择「编辑.csproj」
    2. 确认<TargetFramework>节点的值是net461,比如:
      <TargetFramework>net461</TargetFramework>
      
    3. 找到NETStandard.Library的包引用节点,如果版本是2.0.2,可以尝试删除该节点,然后通过NuGet包管理器重新安装兼容.NET Framework 4.6.1的最新版本(比如2.0.3)
    4. 保存项目文件,右键项目选择「重新加载项目」
  • 清理NuGet缓存并重新还原
    NuGet缓存损坏也可能导致VS显示错误的引用状态:

    1. 打开Visual Studio的「工具」→「选项」→「NuGet包管理器」→「常规」
    2. 点击「清除所有NuGet缓存」按钮
      或者用命令行更彻底:打开命令提示符,运行
    nuget locals all -clear
    
    1. 右键解决方案,选择「还原NuGet包」,等待还原完成后重新检查引用
  • 重置Visual Studio用户数据(终极方案)
    如果上面的方法都无效,可以尝试重置VS的用户配置(注意:这会重置你的窗口布局、快捷键等个性化设置,建议先备份):

    1. 关闭所有VS窗口
    2. 打开命令提示符,运行
    devenv /resetuserdata
    
    1. 重新启动VS,加载解决方案查看引用状态

为什么会出现这种情况?

在从ASP.NET Core 1.1升级到2.x、同时把目标框架从.NET 4.5.2升级到4.6.1的过程中,Visual Studio的项目系统没有及时同步NuGet包的最新状态,旧的缓存信息和新的项目配置冲突,导致引用显示为黄色断裂,但实际NuGet已经正确还原了所有依赖,所以构建不受影响。

内容的提问来源于stack exchange,提问作者mikeo

火山引擎 最新活动