特定于环境的数据库自动化与tfs ci cd

时间:2018-01-25 14:24:03

标签: tfs msbuild continuous-integration winrm dacpac

我正在尝试使用TFS CI / CD进行自动化数据库部署。 用于构建db的MSBuild,后者又创建了dacpac 用于数据库部署到内部部署sql server的Winrm

在构建期间,我正在路过 MSBuild参数:/ t:build / t:publish /p:SqlPublishProfilePath=db.publish.xml db.publish.xml文件的内容

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <IncludeCompositeObjects>True</IncludeCompositeObjects>
    <TargetDatabaseName>dev_DB</TargetDatabaseName>
    <DeployScriptFileName>db.sql</DeployScriptFileName>
    <TargetConnectionString>Data Source=xxxx;Persist Security Info=True;User ID=sa;password=xxx;Pooling=False;MultipleActiveResultSets=False;Connect Timeout=60;Encrypt=False;TrustServerCertificate=True</TargetConnectionString>
    <ProfileVersionNumber>1</ProfileVersionNumber>
  </PropertyGroup>
</Project>

我的发布目前已配置为dev。和QA ..发布对开发工作正常。它不适用于质量保证。

一个观察结果是:构建中的SqlPublishProfilePath指的是引用Dev的发布文件。

我想为dev使用相同的dacpack文件。和质量保证。正如我在发布任务中提到的特定发布文件。

release configuration

1 个答案:

答案 0 :(得分:0)

Publish Profile参数中,通常指定 目标计算机 上的发布配置文件XML文件的路径,或者指定机器可访问的UNC共享的路径管理员的证书。

似乎变量$(devpublishprofile)指向开发机器上的路径。您有两种方法可以解决您的问题:

  1. 将发布配置文件放入UNC共享中,并将指定变量$(devpublishprofile)指定给Dev和QA都可以访问的UNC共享。
  2. 将发布配置文件从Dev复制到QA,并在与变量$(devpublishprofile)指向的路径相同的路径中找到它。