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

.NET MAUI 7执行EF Core迁移时MyApp.deps.json缺失问题求助

.NET MAUI 7 EF Core 迁移找不到 deps.json 的解决方案

核心问题原因

MAUI 是多目标框架项目,dotnet ef 命令默认可能选中 iOS/Android 这类移动目标框架,而这类框架的输出结构不满足 EF Core 工具对 deps.json 文件的查找要求,导致报错。

有效解决方案

方案1:执行迁移时指定桌面目标框架

直接在命令中明确指定使用 net7.0 桌面框架(MAUI 项目默认包含该目标),确保 EF Core 工具能找到正确的依赖文件:

dotnet ef migrations add InitialCreate --framework net7.0

注意:执行命令前要切换到 MAUI 项目的根目录,并且先执行 dotnet build --framework net7.0 确保项目已正确构建。

方案2:使用共享类库+控制台项目(推荐,你试过的方法完全可行)

这是社区处理 MAUI + EF Core 迁移的常用稳定方案,步骤如下:

  • 新建一个 .NET 7 类库项目,将你的实体模型、DatabaseContext 全部移到这个类库中
  • MAUI 项目添加对该类库的引用,确保运行时能正常访问上下文和模型
  • 新建一个 .NET 7 控制台项目,同样引用这个类库,在控制台项目的 Program.cs 中配置 EF Core 的连接字符串(和 MAUI 中使用的逻辑一致,迁移时可以用本地临时路径,不影响运行时)
  • 所有迁移命令都在控制台项目根目录执行,生成的迁移文件会保存在类库中,MAUI 项目可直接使用

这种方式彻底避开了 MAUI 多目标框架的限制,后续迁移操作也更顺畅。

方案3:清理重建后重试

先手动删除项目根目录下的 bin 和 obj 文件夹,再依次执行以下命令:

dotnet clean
dotnet restore
dotnet build --framework net7.0
dotnet ef migrations add InitialCreate --framework net7.0

额外注意点

  • 确保你的 DatabaseContext 构造函数正确配置了 SQLite 连接,MAUI 运行时用 Path.Combine(FileSystem.AppDataDirectory, "your-db-name.db"),迁移时可以用本地路径(比如 Data Source=mydb.db),迁移脚本和运行时的数据库路径不冲突
  • 确认所有 EF Core 相关 NuGet 包(Microsoft.EntityFrameworkCore.Sqlite、Microsoft.EntityFrameworkCore.Tools 等)在类库/MAUI/控制台项目中的版本一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 09:32:51