Visual Studio 团队服务构建失败 - 到 Azure 的数据库项目 SQL

Visual Studio Team Services Build Failed - Database Project to Azure SQL

我在 Team Services 中有一个构建(是 Visual Studio 在线),其中一个 MSBuild 步骤配置为使用发布配置文件构建和部署数据库项目。我似乎无法成功验证它。当我排队 Team Services 构建定义时,我能够构建数据库项目并生成 .dacpac。然而,到了发布时间,出现了这个错误:

C:\a\s\Source\ShopDatabase\bin\Output\MyDatabase.publish.sql(0,0):错误 Deploy72002:无法连接到主服务器或目标服务器 'mydb'。您必须在主服务器或目标服务器中拥有使用相同密码的用户 'mydb'.

我们确定用户存在于 mydb 中,主数据库存在于 Azure 中。

目标:Azure SQL 数据库

数据库项目目标平台:Microsoft AzureSQL数据库

当我 运行 直接从 Visual Studio 发布配置文件时,它有效。但在 Team Services 构建定义中,它没有。我尝试将这些作为 MSbuild 参数:

/t:Build;Publish /p:SqlPublishProfilePath="myproject.Dev.publish.xml" /p:Password="mypassword"

还有这个:

/t:Build;Publish /p:SqlPublishProfilePath="myproject.Dev.publish.xml" /p:TargetConnectionString="Data Source=myproject.database.windows.net;Persist Security Info=True;User ID=myuser;Password=mypassword;" /p:VisualStudioVersion=14.0 /p:Username="myuser" /p:密码="mypassword"

还有这个:

/t:Build;Publish /p:SqlPublishProfilePath="myproject.Dev.publish.xml" /p:TargetConnectionString="Data Source=myproject.database.windows.net;Persist Security Info=True;User ID=myuser;Password=mypassword;" /p:VisualStudioVersion=14.0 /p:TargetUserName="myuser" /p:目标密码="mypassword"

但行不通。请帮助我 T_T 已经在网上搜索了 6 个小时

这是一条糟糕的错误消息,可能掩盖了真正的问题:您需要打开防火墙才能部署到 Azure SQL 数据库。它从 Visual Studio 开始工作,因为您启用了 IP 范围。 this guide to building & deploying from VSO, specifically the post on deploying from VSO here, 中的步骤应该有所帮助。它专门介绍了如何在部署过程中打开防火墙。

一个明显的答案(有时是事后诸葛亮!)但对于未来的谷歌人来说,错误 You must have a user with the same password in master or target server

如果您将部署指向一个不存在的实例,也会发生这种情况。 即:未找到服务器。

我们最近遇到了这个问题,我们通过从 SQL 数据库中的 Server Admin Login 值的末尾删除 @server-name 来解决它SQL 部署 VSTS 任务的详细信息部分。一些在线指南说您需要这个,但最近似乎发生了一些变化,不再需要它。

首先,正在从 visual studio 生成脚本。 运行 作为管理员,它不再是一个混蛋。刚才真是浪费我的生命...