You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JsonApiDotNetCore 5.0.1兼容问题:VS2022 17.3.0运行报错

解决方案

1. 锁定.NET SDK版本

VS2022 17.3.0通常会附带更新的.NET SDK(比如.NET 6.0.400+),而JsonApiDotNetCore 5.0.1可能未适配该版本的控制器扫描逻辑。可以在项目文件(.csproj)中指定使用之前正常运行的SDK版本:

<PropertyGroup>
  <TargetFramework>net6.0</TargetFramework>
  <!-- 替换为你之前使用的SDK对应运行时版本,比如6.0.7 -->
  <RuntimeFrameworkVersion>6.0.7</RuntimeFrameworkVersion>
  <RollForward>Disable</RollForward>
</PropertyGroup>

2. 显式指定JsonApi控制器扫描范围

在Startup.cs/Program.cs中配置JsonApi时,限制控制器扫描的程序集范围,避免误识别重复控制器:

services.AddJsonApi(options =>
{
    options.ControllerDiscovery = new ControllerDiscoveryOptions
    {
        // 仅扫描当前项目的控制器,替换为你的控制器所在程序集名称
        AssemblyNames = new[] { typeof(YourSampleController).Assembly.GetName().Name }
    };
});

3. 排查重复控制器定义

检查项目中是否存在以下情况:

  • 同一资源类型对应多个控制器类(包括继承自基础控制器的子类)
  • 控制器被定义为部分类(partial class)且分散在多个文件中,新SDK扫描逻辑将其识别为多个实例
  • 项目引用的外部程序集中存在同名同资源类型的控制器

若存在上述情况,删除重复定义,或在控制器上添加[JsonApiController(ResourceType = typeof(YourResource))]显式绑定资源类型,消除冲突。

4. 清理缓存并重构项目

  • 删除项目根目录下的bin和obj文件夹
  • 在NuGet包管理器中执行还原操作
  • 重新编译并运行项目

5. 升级JsonApiDotNetCore版本

JsonApiDotNetCore 5.0.1发布时间较早,可能未适配VS2022 17.3.0对应的.NET SDK版本。尝试升级到5.x系列的最新稳定版(比如5.1.1),该版本通常修复了与新SDK的兼容性问题。


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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 04:06:24