无法部署包。无法连接到主服务器或目标服务器。您必须在主服务器或目标服务器上有一个密码相同的用户

时间:2021-04-16 07:43:54

标签: azure-devops visual-studio-2019 sql-server-2019 dacpac sqlpackage

我在 Azure DevOps 中使用自托管代理 (Windows 2019) 和 SQL Server 2019。我正在使用“SQL Server 数据库部署”任务。并尝试使用使用 VS2019 创建的数据库项目部署 dacpac。我收到一个错误

无法部署程序包。无法连接到主服务器或目标服务器。您必须在主服务器或目标服务器上有一个密码相同的用户。”

当我查看任务日志时,SQLPackage.exe 是从以下路径执行的。

“C:\Program Files (x86)\Microsoft SQL Server\140\DAC\bin\SqlPackage.exe”

但以下路径中缺少 DAC 文件夹

“C:\Program Files (x86)\Microsoft SQL Server\150”

当我检查代理池的能力时,它显示 SQLPackage 的路径为

"C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\140\SQLPackage.exe"< /strong>。

但是 SQLPackage.exe 也可以在下面的路径中使用

“C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\150”

一些链接说这是已知问题。并且一些链接建议使用 Powershell 任务而不是“SQL Server 数据库部署”任务。

请任何人告诉我如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

“SQL Server 数据库部署任务”是指 WinRM SQL Server 数据库部署任务还是 Azure SQL 数据库部署任务? 在这里,关于您的问题,我们有一些建议:

  1. 确保 SQL Server 正在运行
  2. 使用正确的 SQL Server 连接名称
  3. 仔细检查 SQL Server 用户名/密码
  4. SQL Server 用户需要正确的服务器角色
  5. 尝试将 Microsoft.SqlServer.DacFx.x64 包从 140.3745.1 升级到最新的稳定版。
  6. 或者您可以尝试将 dacpac 兼容性从 150 更改为 140。