使用EF Tools执行add-migration时出现‘ScriptHalted’错误求助
解决EF Tools执行命令返回“ScriptHalted”的问题
我之前也踩过这个坑,折腾了好一会儿才搞定,给你分享几个大概率能解决的方案:
先确认项目选择是否正确
很多时候是程序包管理器控制台(PMC)的「默认项目」选错了!一定要确保下拉框里选中的是包含DbContext的那个项目(通常是数据访问类库),而不是Web项目或者其他无关项目。如果DbContext在单独类库,还要保证Web项目已经引用它,并且解决方案的启动项目设置为Web项目。清理EF工具缓存并重装
先在PMC里执行卸载命令:dotnet tool uninstall --global dotnet-ef然后重装最新版:
dotnet tool install --global dotnet-ef接着右键项目选择「清理」,删掉bin和obj文件夹后重新生成解决方案。
检查DbContext的配置细节
确保你的DbContext有正确的构造函数:public class YourDbContext : DbContext { public YourDbContext(DbContextOptions<YourDbContext> options) : base(options) { } // 你的DbSet定义... }同时确认Program.cs(或Startup.cs)里正确注册了DbContext,并且appsettings.json的连接字符串没有拼写错误(服务器名、数据库名、认证方式都要核对)。
换用dotnet CLI命令试试
有时候PMC的错误提示太模糊,打开终端切换到DbContext所在项目的根目录,执行:dotnet ef migrations add migrationName这里往往会返回更详细的异常信息,能帮你定位具体问题。
核对SDK与EF工具版本兼容性
用dotnet --version查看项目的.NET SDK版本,再用dotnet ef --version看EF工具版本,尽量保证大版本一致(比如项目用.NET 6,就别装对应.NET 8的EF工具),版本不兼容也容易导致这类奇怪的报错。
内容的提问来源于stack exchange,提问作者Logan
相关产品推荐
相关产品推荐

