执行dotnet ef dbcontext scaffold时,报错无法加载Scaffolded程序集的原因
问题原因及解决方案
核心原因
EF Core脚手架工具执行时,要求启动项目(Scaffolder)必须能访问目标项目(Scaffolded)的程序集,而你的启动项目未添加对Scaffolded项目的引用,这是报错的直接诱因。另外,.NET 6项目搭配EF Core 5.x的跨版本组合,也可能存在潜在的程序集加载兼容问题。
解决步骤
添加项目引用
右键解决方案中的Scaffolder项目,选择「添加」→「项目引用」,勾选Scaffolded项目后保存。也可以在解决方案目录执行命令:dotnet add Scaffolder/Scaffolder.csproj reference Scaffolded/Scaffolded.csproj(注意替换为实际的项目文件路径)
清理重建解决方案
执行以下命令清除构建缓存并重新编译,避免缓存导致的程序集加载异常:dotnet clean dotnet build对齐EF Core版本兼容性
启动项目是.NET 6但使用EF Core 5.x,虽.NET 6兼容.NET Standard 2.1,但跨大版本搭配可能引发加载问题。建议将两个项目的EF Core相关包升级到5.x系列最新补丁版(如5.0.17),或直接升级到EF Core 6.x,与.NET 6版本匹配,从根源减少兼容隐患。验证命令参数路径
确保--project参数指定的是Scaffolded项目文件的正确相对路径,若项目不在当前目录需完整写出,例如:dotnet ef dbcontext scaffold "<MyConnectionString>" Microsoft.EntityFrameworkCore.SqlServer --startup-project ./Scaffolder/Scaffolder.csproj --project ./Scaffolded/Scaffolded.csproj --output-dir Models --force
内容的提问来源于stack exchange,提问作者Syntaks Aeror
相关产品推荐
相关产品推荐

