Linux系统下net6项目运行报错:Microsoft.Data.SqlClient不支持该平台
Linux下.NET6项目运行报错:Microsoft.Data.SqlClient平台不支持
问题概述
在Linux系统上使用Rider构建目标为net6.0的解决方案时,突然出现运行报错:
System.PlatformNotSupportedException: Microsoft.Data.SqlClient is not supported on this platform
项目可正常完成构建,但无法启动运行。已尝试通过NuGet升级Microsoft.Data.SqlClient版本,未解决问题,且上周该项目运行完全正常。
可能触发问题的操作
- 周末为构建另一个遗留NETFramework项目,配置了Mono环境
- 执行了全局更新ef工具的命令:
dotnet tool update --global dotnet-ef(原版本为5.x),后续回滚到5.0.0版本(dotnet tool install --global dotnet-ef --version 5.0.0)也无改善
系统已安装的.NET运行时
执行dotnet --list-runtimes输出如下:
Microsoft.AspNetCore.App 6.0.0 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 6.0.13 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 7.0.2 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.NETCore.App 6.0.0 [/usr/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 6.0.13 [/usr/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 7.0.2 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
当前排查困惑
- 已知netstandard2.0版本的Microsoft.Data.SqlClient是破坏性存根,但Rider的程序集资源管理器显示bin目录中的该库版本为net6
- 不确定bin目录下的
runtimes文件夹应包含的内容,当前仅存在unix运行时,没有linux特定运行时,怀疑这是否是问题根源
内容的提问来源于stack exchange,提问作者Keith Jackson
相关产品推荐
相关产品推荐

