我有一个 .NET 7 解决方案,其中一个项目是 npgsql 层类库。我需要使用
dotnet ef
迁移工具部署它,但没有 .NET Core SDK,在隔离网络中。
我正在尝试运行这个:
dotnet publish -c Release -r linux-x64 --self-contained true
但它返回了“找不到Microsoft.NETCore.App.Runtime.linux-x64”的错误。当我尝试安装此 nuget 时,出现不兼容错误。
在没有SDK的情况下如何安装EF Core迁移工具?
需要运行“dotnet ef数据库更新”命令
我建议重新考虑该方法,而不是使用工具 - 使用 EF 提供的迁移器基础设施(否则您很可能需要 pod 中的 SDK):
IServiceProvider _serviceProvider = ...;
// ...
// Get the context - AppCtx
var requiredService = _serviceProvider.GetRequiredService<AppCtx>();
// Resolve and use migrator:
var migrator = requiredService.GetService<IMigrator>();
await migrator.MigrateAsync(null, stoppingToken);