azure - Team Foundation Service 构建完成后添加 Fluent Migrator 迁移步骤

标签 azure tfs tfsbuild fluent-migrator

我有一个 ASP.NET MVC4 应用程序,我正在使用托管的 Team Foundation Service 来自动构建并部署到 Azure 网站。

除了部署数据库更改之外,这非常有效。

我正在使用 Fluent Migrator 来指定对数据库的更改,目前我有一个 IDatabaseInitializer 的自定义实现,以便当我的 Entity Framework 上下文启动时,它会根据需要进行任何迁移。显然,这会将数据库迁移保留到应用程序的“首次运行”,而不是构建和部署。

我希望能够做的是让构建在部署到 azure 之前尝试迁移(因此,如果迁移出现问题,构建会失败)。

这可以通过托管构建服务实现吗?我可以像使用自托管内部 TFS 一样添加构建后步骤吗?

最佳答案

将以下内容添加到您的 .csproj 文件中:

  <UsingTask TaskName="FluentMigrator.MSBuild.Migrate" AssemblyFile="$(MSBuildProjectDirectory)\FluentMigrator.MSBuild.dll" />
  <Target Name="Migrate">
    <Message Text="Migrating database" />
    <Migrate Database="sqlserver" Connection="YOUR CONNECTION STRING" Target="$(IntermediateOutputPath)YOUR DLL NAME.dll">
    </Migrate>
  </Target>

还要确保在构建目标之后添加目标,如下所示:

<Project ToolsVersion="4.0" DefaultTargets="Build;Migrate;Test" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

您可能已经注意到我从项目目录加载了 msbuild 任务。我将 FluentMigrator.MSBuild.dll 和 FluentMigrator.Runner.dll 程序集复制到我的项目文件夹中。当我尝试从包文件夹加载程序集时,出现错误,指出程序集的格式不正确...

关于azure - Team Foundation Service 构建完成后添加 Fluent Migrator 迁移步骤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18123775/

相关文章:

TFS 重新运行合并

MSBuild 和 Webpack

msbuild - 当另一个在 TFS 2008 中成功完成时触发构建

tfs - "Nuget pack"似乎忽略了 BasePath 参数

Azure 表单识别器预测期间出现一般错误

c# - Visual Studio Publish, “PublishTelemetry” 任务无法加载

visual-studio-2013 - 将 "Show Solution Changes"设置为 VS2013 TFS 中包含的更改的默认 View 选项

tfs - 识别 Team Foundation Server 的版本

azure - 如何使用 Nginx 和 Microsoft Azure AD 进行身份验证?

azure - 例如,Azure Functions 能否与 WebAPI 驻留在同一应用服务上?