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

Ubuntu下运行ASP.NET项目遇EF程序集找不到错误求助

问题分析与解决

当ASP.NET项目使用EF时出现FileNotFoundException,明明Microsoft.EntityFrameworkCore.Relational.dll和项目DLL在同一目录却加载失败,可从以下几个方向排查:

版本不匹配

检查项目依赖的包版本和本地DLL版本是否完全一致。比如项目配置里引用的是8.0.1版本,但你放置的是8.0.2的DLL,反之亦然。

  • 操作:打开项目的.csproj文件,查看<PackageReference>节点中Microsoft.EntityFrameworkCore.Relational的版本号;也可以用dotnet list package命令快速查看已安装的包版本,确保和本地DLL版本完全对应。

依赖项缺失

Microsoft.EntityFrameworkCore.Relational本身依赖其他多个DLL(比如Microsoft.EntityFrameworkCore、Microsoft.Extensions.Logging.Abstractions等),如果这些依赖文件不在输出目录,单独复制目标DLL也会加载失败。

  • 操作:不要手动复制单个DLL,改用dotnet publish命令重新发布项目,该命令会自动把所有依赖的DLL都复制到输出目录。

程序集绑定重定向冲突

项目可能存在程序集绑定重定向配置,指定了与本地DLL不符的版本,导致加载时找错文件。

  • 操作:检查项目的runtimeconfig.json文件(.NET Core/.NET 5+项目),确认其中的版本配置是否正确;如果是传统.NET Framework项目,查看web.config里的<assemblyBinding>节点,调整重定向规则指向正确的版本。

文件损坏或权限问题

DLL文件可能因下载或复制过程损坏,或者运行程序的用户没有读取该文件的权限。

  • 操作:删除现有DLL,从本地NuGet缓存(路径通常是~/.nuget/packages/microsoft.entityframeworkcore.relational/对应版本/lib/net8.0)重新复制完整的DLL;右键DLL文件,检查“属性”-“安全”选项卡,确保运行程序的用户拥有读取权限。

目标框架不兼容

项目的目标框架(比如.NET 8)和DLL编译的目标框架不匹配,比如DLL是针对.NET 6编译的,而项目使用.NET 8运行。

  • 操作:打开.csproj文件确认<TargetFramework>节点的框架版本,重新安装对应框架版本的Microsoft.EntityFrameworkCore.Relational包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 02:13:24