SSDT发布不使用MSBuild命令行中的连接字符串
我正在尝试从我的(TeamCity)生成服务器使用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不太喜欢它,并且在部署数据库之前,必须在项目属性或命令提示符下指定连接字符串。,当然,这正是我尝试做的 用于发布
.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。