使用 VSTS 发布定义 运行 Entity Framework 代码数据库迁移

Using VSTS Release Definition to run Entity Framework Code Database Migration

我正在使用代码优先迁移编写 .NET Core 和 Entity Framework 核心应用程序。

我希望能够使用 Visual Studio Team Services Build and Release Definitions

将其部署到 Azure Web App

我希望能够 运行 使用脚本将数据库迁移作为发布定义的一部分

dotnet ef database update

我已通过发布定义中的命令提示符操作完成此操作

但是我总是收到消息

No executable found matching command "dotnet-ef"

我已尝试确保此命令 运行与 .cproj 文件位于同一目录中

我也试过 运行宁

dotnet restore 

作为之前的命令提示符任务,这给出了一个错误

The folder 'C:\a\r1\a\Drop\s\src\xxxxx' does not contain a project to restore even though it does.

是否有人尝试将代码优先迁移作为团队服务发布定义步骤的一部分?

我的另一个选择是 运行 将迁移作为 Web 应用程序本身的一部分,但我想 运行 通过发布过程而不是 运行 在应用程序中进行。

您需要使用 Hosted VS2017 代理而不是 Hosted 代理。我的步数:

  1. 编辑 csproj 文件以在下面添加此代码并签入更改(参考 .NET Command Line Tools 文章)

代码:

<ItemGroup>
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="1.1.1" PrivateAssets="All" />
  </ItemGroup>
  <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0" />
  </ItemGroup>
  1. 命令行 step/task(工具:dotnet;参数:--version
  2. 命令行 step/task(工具:dotnet;参数:restore
  3. 命令行 step/task(工具:dotnet;参数:ef --version
  4. 使用 Hosted VS2017 代理构建队列。