使用tfs ci cd实现特定于环境的数据库自动化

使用tfs ci cd实现特定于环境的数据库自动化,tfs,msbuild,continuous-integration,winrm,dacpac,Tfs,Msbuild,Continuous Integration,Winrm,Dacpac,我正在尝试使用TFS CI/CD自动化数据库部署。 MSBuild,用于构建数据库,该数据库将创建dacpac Winrm for db部署到本地sql server 在建造期间,我通过 MSBuild参数:/t:build/t:publish/p:SqlPublishProfilePath=db.publish.xml db.publish.xml文件的内容 <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersio

我正在尝试使用TFS CI/CD自动化数据库部署。 MSBuild,用于构建数据库,该数据库将创建dacpac Winrm for db部署到本地sql server

在建造期间,我通过 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>

真的
开发数据库
db.sql
数据源=xxxx;持久安全信息=True;用户ID=sa;密码=xxx;池=假;MultipleActiveResultSets=False;连接超时=60;加密=假;TrustServerCertificate=True
1.
我的版本当前配置为dev.和QA。。该版本对于开发人员来说运行良好,但对于QA来说却不起作用

一个观察结果是:构建中的SqlPublishProfilePath引用的是发布文件,该文件引用的是开发人员

我想为开发和QA使用相同的dacpack文件。正如我在发布任务中提到的,特定的发布文件


发布配置文件
参数中,通常指定目标计算机或计算机管理员凭据可访问的UNC共享上发布配置文件XML文件的路径

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

  • 将发布配置文件放在UNC共享中,并将变量
    $(devpublishprofile)
    指定给开发人员和QA都可以访问的UNC共享
  • 将发布配置文件从Dev复制到QA,并将其定位在变量
    $(devpublishprofile)
    指向的同一路径中

  • 我试着Cece Dong不工作,更改没有反映。你能分享你发布的整个日志吗?