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

.NET Core 2.2项目创建EF迁移时遇System.IO.FileNotFoundException错误

解决.NET Core 2.2 EF迁移时的FileNotFoundException问题

你遇到的核心问题是EF迁移工具找不到名为myproject的程序集,而你的启动项目是myproject-api。结合你的配置细节,我整理了几个针对性的解决方案:

1. 检查DbContext所在项目的引用关系

如果你的DbContext是放在单独的myproject类库项目中(而非直接在myproject-api项目内),那你必须确保myproject-api已经添加了对myproject的项目引用。从你提供的csproj来看,目前只有NuGet包引用,缺少关键的项目引用,这会导致EF无法定位到包含DbContext的程序集。

添加项目引用的两种方式:

  • 在Visual Studio中右键点击myproject-api项目 → 选择「添加」→「项目引用」,勾选myproject项目即可。
  • 手动编辑myproject-api.csproj,在任意<ItemGroup>节点中添加:
    <ProjectReference Include="..\myproject\myproject.csproj" />
    

2. 运行EF命令时明确指定项目参数

如果DbContext所在项目和启动项目分离,直接执行dotnet ef命令可能会出现定位错误。你需要在命令中明确指定两个关键参数:

dotnet ef migrations add init --project ../myproject --startup-project ./myproject-api --verbose
  • --project:指定包含DbContext的类库项目路径
  • --startup-project:指定你的WebAPI启动项目路径

3. 清理编译缓存并重建解决方案

有时候编译生成的bin/obj文件夹会存在缓存问题,导致EF工具无法读取最新的程序集。可以按以下步骤操作:

  • 删除myproject-api和myproject项目下的bin、obj文件夹
  • 运行dotnet restore恢复项目依赖
  • 运行dotnet build重新编译整个解决方案
  • 再次尝试执行迁移命令

4. 验证DbContext的配置(可选)

确保你的Startup.cs中正确配置了DbContext,比如在ConfigureServices方法中有类似代码:

services.AddDbContext<YourDbContext>(options =>
    options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

同时确认appsettings.json中配置了有效的数据库连接字符串。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:19:55