EF Core移除SQLite后生成SQL Server迁移时加载组件报错
排查EF迁移报错无法加载SQLitePCLRaw.core程序集的方向
检查项目依赖残留
- 执行
dotnet list package遍历所有项目,确认是否存在SQLite相关包(如Microsoft.EntityFrameworkCore.Sqlite、SQLitePCLRaw.core)的直接或间接引用,部分第三方库可能隐性依赖SQLite。 - 手动检查各项目的.csproj文件,搜索是否有未移除的
<PackageReference>包含SQLite相关项,包括标记为PrivateAssets的引用。
- 执行
清理EF工具与NuGet缓存
- 卸载并重装EF工具:执行
dotnet tool uninstall --global dotnet-ef,再运行dotnet tool install --global dotnet-ef,避免工具缓存旧配置。 - 清理本地NuGet缓存:运行
dotnet nuget locals all --clear,消除残留的SQLite包影响。
- 卸载并重装EF工具:执行
验证DbContext相关配置
- 确认ServiceADbContextFactory的CreateDbContext方法已完全替换为
UseSqlServer,无UseSqlite残留代码。 - 检查启动类(Program.cs/Startup.cs)的服务注册逻辑,确保AddDbContext时使用SqlServer配置,无环境分支遗漏SQLite配置的情况。
- 排查项目中其他DbContext或迁移配置类,确认未引用SQLite提供程序。
- 确认ServiceADbContextFactory的CreateDbContext方法已完全替换为
检查解决方案级配置
- 查看Directory.Packages.props文件(若存在),确认无全局SQLite相关包引用。
- 检查launchSettings.json中的环境变量,确保未指定SQLite相关连接字符串或配置项,避免EF工具读取旧配置。
排查第三方依赖与自定义扩展
- 若项目使用DDD框架、仓储库等第三方组件,检查其是否默认依赖SQLite,需更新配置切换至SQL Server。
- 排查自定义EF扩展方法,确认内部未保留SQLite相关逻辑。
内容的提问来源于stack exchange,提问作者smartroof
相关产品推荐
相关产品推荐

