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

.NET Core 3.1类库实例化SqlConnection提示System.Data.SqlClient不支持当前平台如何解决

问题原因分析

报错System.Data.SqlClient is not supported on this platform的核心原因是老版System.Data.SqlClient包对.NET Core 3.1的跨平台支持存在缺陷,微软已经停止对该包在.NET Core/.NET 5+环境下的功能更新,仅做安全维护,且该包默认仅支持Windows平台运行,非Windows平台或者跨平台类库项目引用时就会触发平台不支持的报错。
你的项目架构参考:
项目架构图

解决方案
  • 优先使用官方推荐替代包
    卸载项目中引用的System.Data.SqlClient NuGet包,替换为跨平台兼容的Microsoft.Data.SqlClient NuGet包,该包是微软官方推出的替代实现,完全兼容.NET Core 3.1版本,支持Windows、Linux、macOS全平台运行。
    替换后仅需修改命名空间引用:
    将代码头部的using System.Data.SqlClient;改为using Microsoft.Data.SqlClient;即可,原有SqlConnection相关的业务逻辑不需要做任何调整。

  • 必须保留System.Data.SqlClient的兼容方案
    如果有历史代码约束无法替换包,需要满足两个条件:

  1. 确认你的类库最终仅在Windows平台下运行,System.Data.SqlClient不支持.NET Core环境下的非Windows运行场景
  2. 升级System.Data.SqlClient NuGet包到4.8.3及以上版本,低版本对.NET Core 3.1的适配存在已知兼容性BUG
  • 代码优化建议
    你现有代码中throw new Exception(ex.Message);的写法会丢失异常的原始调用栈信息,不利于后续问题排查,建议直接改为throw;即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 11:54:04