Entity Framework Core执行Add-Migration时出现FileLoadException异常求助
add-migration时的FileLoadException错误 你遇到的是典型的程序集版本不匹配问题,这种情况在EF Core迁移操作中很常见,尤其是项目里不同EF相关包版本不一致的时候。下面是几个经过验证的解决步骤,你可以逐一尝试:
统一所有EF Core相关包的版本
你已经安装了Microsoft.EntityFrameworkCore.SqlServer 2.0.2,但要确保项目中其他EF Core依赖包(比如Microsoft.EntityFrameworkCore、Microsoft.EntityFrameworkCore.Tools、Microsoft.EntityFrameworkCore.Design等)也都是2.0.2版本。可以通过NuGet包管理器(右键项目→管理NuGet包)查看所有已安装的EF相关包,把版本不一致的都改成2.0.2;或者直接编辑项目的.csproj文件,确保所有EF包的Version属性都是2.0.2。清理并重建项目
项目缓存的旧程序集可能会干扰迁移命令。先右键项目选择清理,然后选择生成;或者在程序包管理器控制台依次执行:Clean-Migration Rebuild确认包管理器控制台的默认项目
执行add-migration命令时,一定要确保控制台顶部的“默认项目”下拉框选中的是包含你的DbContext类的项目——很多时候选错项目会导致引用的包版本不匹配,进而触发这个错误。如果不确定,也可以在命令里明确指定项目:add-migration initial -Project YourDataAccessProjectName清除NuGet缓存并重新还原包
损坏的NuGet缓存也可能导致程序集加载异常。打开VS的工具→选项→NuGet包管理器→包源,点击“清除所有NuGet缓存”;之后右键解决方案选择还原NuGet包,确保所有包都重新下载并正确引用。手动检查程序集引用
如果以上步骤都没解决问题,去项目的引用节点找到Microsoft.EntityFrameworkCore.SqlServer,右键查看属性,确认“版本”字段是2.0.2。如果显示的是其他版本,先删除这个引用,然后重新通过NuGet安装2.0.2版本的包。
这些步骤应该能帮你解决这个程序集加载错误,顺利执行迁移命令。
内容的提问来源于stack exchange,提问作者Abhilash D K

