SSDT发布不使用MSBuild命令行中的连接字符串

SSDT发布不使用MSBuild命令行中的连接字符串,msbuild,sql-server-data-tools,Msbuild,Sql Server Data Tools,我正在尝试从我的(TeamCity)生成服务器使用MSBuild发布.sqlproj项目。我使用.publish.xml设置大多数发布设置,但希望在命令行上指定连接字符串,以便将其安全地存储在TeamCity属性中 但是,MSBuild似乎根本不使用命令行上指定的连接字符串,而是坚持使用.publish.xml中的连接字符串。我尝试过从XML中删除它并在XML中清空它,但MSBuild不太喜欢它,并且在部署数据库之前,必须在项目属性或命令提示符下指定连接字符串。,当然,这正是我尝试做的 用于发布

我正在尝试从我的(TeamCity)生成服务器使用MSBuild发布
.sqlproj
项目。我使用
.publish.xml
设置大多数发布设置,但希望在命令行上指定连接字符串,以便将其安全地存储在TeamCity属性中

但是,MSBuild似乎根本不使用命令行上指定的连接字符串,而是坚持使用
.publish.xml
中的连接字符串。我尝试过从XML中删除它并在XML中清空它,但MSBuild不太喜欢它,并且在部署数据库之前,必须在项目属性或命令提示符下指定连接字符串。,当然,这正是我尝试做的

用于发布的完整命令如下所示:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <IncludeCompositeObjects>True</IncludeCompositeObjects>
    <TargetDatabaseName><!-- snip --></TargetDatabaseName>
    <DeployScriptFileName><!-- snip -->.sql</DeployScriptFileName>
    <TargetConnectionString><!-- snip snip --></TargetConnectionString>
    <ScriptDatabaseOptions>False</ScriptDatabaseOptions>
    <BlockOnPossibleDataLoss>False</BlockOnPossibleDataLoss>
    <DeployDatabaseInSingleUserMode>False</DeployDatabaseInSingleUserMode>
    <ProfileVersionNumber>1</ProfileVersionNumber>
  </PropertyGroup>
</Project>
msbuild/t:Build;Publish/p:SqlPublishProfilePath=“c:\path\to\profile.Publish.xml”/p:Publish\u TargetConnectionString=“连接字符串”“c:\path\to\project.sqlproj”

我尝试过使用
/p:TargetConnectionString
/p:SqlPublishProfilePath=“c:\path\to\profile.publish.xml”;也发布\u TargetConnectionString=“连接字符串”
,但没有效果

.publish.xml
如下所示:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <IncludeCompositeObjects>True</IncludeCompositeObjects>
    <TargetDatabaseName><!-- snip --></TargetDatabaseName>
    <DeployScriptFileName><!-- snip -->.sql</DeployScriptFileName>
    <TargetConnectionString><!-- snip snip --></TargetConnectionString>
    <ScriptDatabaseOptions>False</ScriptDatabaseOptions>
    <BlockOnPossibleDataLoss>False</BlockOnPossibleDataLoss>
    <DeployDatabaseInSingleUserMode>False</DeployDatabaseInSingleUserMode>
    <ProfileVersionNumber>1</ProfileVersionNumber>
  </PropertyGroup>
</Project>

真的
.sql
假的
假的
假的
1.
SSDT是我今天可以从微软下载的最新版本


有人能做到这一点吗?

如上所述,我使用MSBuild构建.dacpac和sqlpackage.exe以将其发布到SQL Server,效果很好。

我对MSBuild任务有不同的问题,但可能是我自己。我要做的是使用msbuild直接调用sqlpackage.exe,因为您有更多的控制权,而且它似乎更适合于如何使用sqlpackage.exe。