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

求助:.NET Core 2.0项目执行EF Core迁移时无法加载EF7程序集

解决EF Core迁移时找不到EF7程序集的问题

我之前在.NET Core项目里也遇到过类似的迁移工具报错情况,给你几个可行的排查和解决步骤:


1. 清理重建解决方案,清除编译缓存

有时候删除迁移文件后,旧的编译缓存会导致工具找不到最新的程序集。你可以:

  • 关闭Visual Studio,手动删除所有项目下的bin和obj文件夹
  • 重新打开VS,依次执行清理解决方案(Clean Solution)和重建解决方案(Rebuild Solution)
  • 之后再尝试执行迁移命令

2. 明确指定迁移目标项目

你当前的命令只指定了启动项目,但EF迁移工具需要明确知道哪个项目包含你的DbContext。修改命令试试:

使用.NET CLI

dotnet ef migrations add Initial --startup-project ..\Angular --project ..\EF7

使用包管理器控制台(PMC)

先在PMC的“默认项目”下拉框选择EF7,然后执行:

Add-Migration Initial -StartupProject Angular

或者直接完整指定参数:

Add-Migration Initial -Project EF7 -StartupProject Angular

3. 检查EF7项目的依赖和输出配置

  • 确认EF7项目的csproj文件中,所有EF相关包的版本一致,都是2.0.1:
    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.0.1" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.0.1" />
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.1" />
    
  • 检查Angular项目对EF7项目的引用是否正常(没有黄色感叹号),右键Angular项目→依赖项→项目,确认EF7已正确添加。
  • 查看EF7项目的生成输出路径(右键项目→属性→生成),确保是默认的bin\Debug\netstandard2.0(匹配你的.NET Standard版本),没有被修改到其他位置。

4. 重置EF工具缓存

如果是EF工具本身的缓存问题,可以尝试重置:

针对.NET CLI

# 卸载全局EF工具
dotnet tool uninstall --global dotnet-ef
# 重新安装对应版本的工具
dotnet tool install --global dotnet-ef --version 2.0.1

针对包管理器控制台

在PMC中执行:

Update-Package Microsoft.EntityFrameworkCore.Tools -Reinstall

5. 验证DbContext的配置位置

确保你的DbContext类确实在EF7项目中,并且Angular项目的Startup.cs里配置DbContext时引用的是EF7项目中的类,没有引用错误的程序集。比如:

using EF7.Data; // 确认这个命名空间来自EF7项目

public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext<YourDbContext>(options =>
        options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
    // ...其他配置
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:25:44