-
确保项目中的所有依赖项已经在CI的构建环境中正确安装。
-
确定CI环境中使用的dotnet版本与本地环境中使用的版本相同。
-
确保CI环境中安装了相应的数据库驱动程序。
-
确保数据库已正确配置并可从CI环境中访问。
-
尝试将CI环境中的.NET Core SDK更新为最新版本,以确保它与项目兼容。
-
如果上述解决方法仍然无效,可以将EF命令封装在 PowerShell 脚本中,并将其用作 CI 中的自定义构建步骤。 可参考以下示例。
$env:ConnectionString = "Data Source=.\SQLEXPRESS;Initial Catalog=MyDB;Integrated Security=True"
$env:TargetMigration = "MyTargetMigration"
$env:ScriptPath = "./MyDBScript.sql"
$env:ToolPath = "./mysolutiondir/MyProj/bin/Debug/netcoreapp2.1"
dotnet ef migrations script $env:TargetMigration --output $env:ScriptPath --context MyDbContext --verbose --no-build --assembly $env:ToolPath/MyProj.dll --connection $env:ConnectionString
上述脚本会在构建时生成一个名为MyDBScript.sql的SQL文件,其中包含 EF 数据迁移的脚本。 然后,您可以使用该脚本来更新 CI 环境中的数据库。