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

Clean Architecture .NET项目加Domain层包后脚手架生成失败全层报错

问题根因
  • 包版本冲突:Domain层引入的EF Core相关Nuget包版本,与项目使用的.NET SDK版本、其他项目中已引用的EF Core包版本不匹配,会触发全解决方案的依赖解析错误,导致所有层都报程序集引用异常。
  • 依赖方向违反Clean Architecture规则:Domain层是架构最核心的底层,仅应该包含业务实体、核心业务规则和抽象接口定义,不能直接引用EF Core这类属于基础设施实现的包,否则所有依赖Domain层的其他层都会因为异常的传递依赖触发构建错误。
  • 包安装或缓存异常:如果只安装了EF Core主包,缺少脚手架执行必需的Microsoft.EntityFrameworkCore.Design包,或者本地Nuget缓存损坏,也会导致构建全链路报错。
解决步骤
  1. 修正架构依赖:直接移除Domain层安装的所有EF Core相关Nuget包,所有EF Core的引用、DbContext定义、仓储实现都放到Infrastructure层处理,保证依赖方向仅从外层向内层指向。
  2. 统一全解决方案的EF Core包版本:检查所有项目中引用的EF Core相关包(包括数据库提供程序包、Tools包、Design包),确保版本完全一致,且和项目的.NET SDK大版本匹配(.NET 6对应EF Core 6.x、.NET 8对应EF Core 8.x,禁止跨大版本混用)。
  3. 清理并重新还原依赖:依次执行以下命令清理无效缓存和输出:
dotnet clean
dotnet nuget locals all --clear
dotnet restore
  1. 调整脚手架执行配置:执行脚手架命令前,如果使用包管理器控制台,需要把默认项目切换到安装了EF Core依赖的Infrastructure层,同时将启动项目设置为包含数据库连接配置的入口项目,避免配置读取失败。
  2. 兜底处理:如果还有错误,手动删除所有项目的bin、obj文件夹后重新生成解决方案,确认基础构建能正常通过后再执行脚手架操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 03:39:00