我正在尝试使用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文件。和质量保证。正如我在发布任务中提到的特定发布文件。
答案 0 :(得分:0)
在Publish Profile
参数中,通常指定 目标计算机 上的发布配置文件XML文件的路径,或者指定机器可访问的UNC共享的路径管理员的证书。
似乎变量$(devpublishprofile)
指向开发机器上的路径。您有两种方法可以解决您的问题:
$(devpublishprofile)
指定给Dev和QA都可以访问的UNC共享。$(devpublishprofile)
指向的路径相同的路径中找到它。