VSTS 中完整 .net 项目中的 Ef 核心迁移
Ef core migrations in full .net project in VSTS
-
.net
-
entity-framework
-
entity-framework-migrations
-
entity-framework-core
-
azure-pipelines-release-pipeline
我创建了一个针对完整 .net 框架的 .net 核心网络应用程序
我已经创建了一个 class 库(.net 框架)
在这个 dll 中,我引用了 ef core 并创建了一个上下文。
当我使用包管理器时迁移工作。
我目前面临的问题
我需要能够在 VSTS 部署期间使用迁移。
我试过了
在 VSTS 中创建一个 powershell 部署脚本来调用 dotnet-ef 命令。这不起作用,因为我无法在我的项目中安装 Microsoft.EntityFrameworkCore.Tools.DotNet
我尝试在我的 .csproj 中手动添加引用
Manual update .csproj
但不幸的是,这并不能解决我的问题,只能产生这样的结果。
Faulty reference
免责声明:我没有测试过以下任何建议。
其他人正在使用此解决方法:。
ASP.NET Core 的另一种解决方法是添加命令行参数 (Program.cs) 以允许从命令行执行 .Database.Migrate()。然后您可以添加 VSTS 部署任务,该任务使用此命令行参数在 azure 上执行 powershell command/script。
另一种方法可能是让您的 CI 将带有 EF Core tools reference 的项目文件 (*.csproj) 放入工件中,然后在 CD 中执行 dotnet 恢复。项目文件似乎是必需的,因为这是我可以看到您可以指示 dotnet 工具恢复什么的唯一方式。
我意识到这是一个老问题,但对于正在寻找在 Azure DevOps(又名 VSTS)中处理 EF 迁移的最佳方法的其他人来说,这是我的发现。
EF 迁移构建源代码,这可能会出现问题,因为您需要源代码,而发布管道并不具有构建管道所具有的所有相同构建功能。
我的方法是:
- 使用
dotnet ef
命令在构建中生成迁移脚本。
- 将脚本发布为构建的工件。
- 运行 发布管道中部署期间的脚本。
查看完整博客 post 了解更多详情 here。
.net
entity-framework
entity-framework-migrations
entity-framework-core
azure-pipelines-release-pipeline
我创建了一个针对完整 .net 框架的 .net 核心网络应用程序
我已经创建了一个 class 库(.net 框架) 在这个 dll 中,我引用了 ef core 并创建了一个上下文。 当我使用包管理器时迁移工作。
我目前面临的问题 我需要能够在 VSTS 部署期间使用迁移。
我试过了 在 VSTS 中创建一个 powershell 部署脚本来调用 dotnet-ef 命令。这不起作用,因为我无法在我的项目中安装 Microsoft.EntityFrameworkCore.Tools.DotNet
我尝试在我的 .csproj 中手动添加引用 Manual update .csproj
但不幸的是,这并不能解决我的问题,只能产生这样的结果。 Faulty reference
免责声明:我没有测试过以下任何建议。
其他人正在使用此解决方法:
ASP.NET Core 的另一种解决方法是添加命令行参数 (Program.cs) 以允许从命令行执行 .Database.Migrate()。然后您可以添加 VSTS 部署任务,该任务使用此命令行参数在 azure 上执行 powershell command/script。
另一种方法可能是让您的 CI 将带有 EF Core tools reference 的项目文件 (*.csproj) 放入工件中,然后在 CD 中执行 dotnet 恢复。项目文件似乎是必需的,因为这是我可以看到您可以指示 dotnet 工具恢复什么的唯一方式。
我意识到这是一个老问题,但对于正在寻找在 Azure DevOps(又名 VSTS)中处理 EF 迁移的最佳方法的其他人来说,这是我的发现。
EF 迁移构建源代码,这可能会出现问题,因为您需要源代码,而发布管道并不具有构建管道所具有的所有相同构建功能。
我的方法是:
- 使用
dotnet ef
命令在构建中生成迁移脚本。 - 将脚本发布为构建的工件。
- 运行 发布管道中部署期间的脚本。
查看完整博客 post 了解更多详情 here。