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

.NET Framework4.8网站加载.NET Standard2.0类库SqlClient依赖异常求助

.NET Framework 4.8 Web Site 引用EF Core 3.1 .NET Standard类库故障解决方案

核心原因

ASP.NET Web Site(非Web Application项目)使用传统的非SDK式生成逻辑,没有项目文件的情况下,NuGet不会自动递归解析.NET Standard类库的传递依赖,也不会自动识别复制平台特定的原生资源dll,这是依赖不进bin、SqlClient系列报错的根本原因,所有配置都可以通过现有文件完成,不需要转换项目格式。


操作步骤

1. 清理环境,统一依赖版本

  • 卸载之前为了编译勉强安装的重复NuGet包,清空网站bin目录下所有手动复制的非项目输出dll,避免版本冲突
  • 在Web Site项目的NuGet包管理器中,安装和内部.NET Standard类库引用版本完全一致的以下包,不需要重复安装多版本:
    • Microsoft.EntityFrameworkCore 3.1.x(版本号和类库中的EFCore版本严格对齐)
    • Microsoft.EntityFrameworkCore.SqlServer 3.1.x(会自动拉取对应版本的Microsoft.Data.SqlClient基础包)
    • Microsoft.Data.SqlClient.SNI 和SqlClient版本匹配的正式稳定版,不要使用预览版

所有包版本必须和内部类库的引用版本100%一致,版本不一致会直接导致加载失败

2. 补全缺失的SNI原生dll

你找不到Microsoft.Data.SqlClient.SNI.x64.dll是因为这个原生dll默认存放在NuGet包的runtime目录中,Web Site项目不会自动复制,按以下路径取文件即可:

  • 打开本地NuGet缓存默认路径:C:\Users\[你的系统用户名]\.nuget\packages\microsoft.data.sqlclient.sni\[你安装的SNI包版本号]\runtimes
  • 路径下win-x64\native、win-x86\native文件夹分别存放64位、32位版本的SNI dll
  • 根据你站点的应用程序池运行位数,把对应dll直接复制到网站bin目录根目录,不要建子文件夹;如果不确定运行位数,把两个版本的dll都复制到bin目录即可

3. 配置web.config解决平台兼容和绑定问题

所有原需要写在csproj里的兼容配置,全部写到web.config中即可:

  1. 配置程序集绑定重定向,解决dll版本冲突,在<configuration>节点下添加以下内容,版本号替换为你实际安装的版本:
<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="Microsoft.Data.SqlClient" publicKeyToken="23ec7fc2d6eaa4a5" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-[你的SqlClient版本号]" newVersion="[你的SqlClient版本号]" />
    </dependentAssembly>
    <!-- 其余EFCore相关dll的绑定重定向如果NuGet安装时未自动生成,按相同格式补充即可 -->
  </assemblyBinding>
</runtime>
  1. 关闭影子拷贝解决平台识别错误,在<system.web>节点下添加以下配置:
<hostingEnvironment shadowCopyBinAssemblies="false" />

这一步是解决Microsoft.Data.SqlClient is not supported on this platform报错的核心:Web Site默认开启的bin目录程序集影子拷贝机制,无法正确识别.NET Standard依赖的平台适配逻辑,关闭后会直接从bin目录加载正确的程序集。


验证

清理解决方案后重新生成,访问调用EF Core的功能模块即可。如果仍有加载错误,直接查看Windows事件查看器中ASP.NET分类的错误日志,定位具体缺失/版本不匹配的dll,补充对应文件或调整绑定重定向即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 19:42:25