Azure Devops 无法从计算机上的注册表中找到 Dac Framework (SqlPackage.exe) 的位置

Posted

技术标签:

【中文标题】Azure Devops 无法从计算机上的注册表中找到 Dac Framework (SqlPackage.exe) 的位置【英文标题】:Azure Devops Unable to find the location of Dac Framework (SqlPackage.exe) from registry on machine 【发布时间】:2020-08-12 18:25:01 【问题描述】:

我正在使用 azure devops 通过部署组将数据库部署到虚拟机。 我已经验证了系统变量路径是正确的,并且当我登录到虚拟机并尝试使用 powershell 运行它时它也可以工作。我不确定为什么它没有找到它。有什么想法吗?谢谢

【问题讨论】:

您使用的是哪个代理和任务?并且您是否尝试过在代理中指定 SqlPackage.exe 的路径? github.com/Microsoft/azure-pipelines-tasks/issues/4362 【参考方案1】:

如果有人希望在 Azure 发布管道和本地服务器上解决此问题,则从 Visual Studio 安装程序安装 SSDT 并没有帮助。 必须安装此链接中提到的 DAC Framework.msi:https://docs.microsoft.com/en-us/sql/tools/sqlpackage-download?view=sql-server-ver15&viewFallbackFrom=sql-server-ver17

从这里安装后,Microsoft SQL Server DAC 项目出现在注册表中(在 Win 2019 服务器上),然后发布管道能够找到 SQLPackage.exe 文件,否则即使 sqlpackage.exe 文件可用并且来自 Visual Studio 构建工具 2017 和 2019 的 SSDT 工具在那里,但仍然没有注册表项(奇怪)。安装这个 msi 解决了这个问题。希望它能节省一些时间。

【讨论】:

【参考方案2】:

您可以使用此 PowerShell 脚本来定位 SqlPackage.exe 的路径

https://www.powershellgallery.com/packages/PublishDacPac/1.0.2.2902/Content/public%5CGet-SqlPackagePath.ps1

【讨论】:

以上是关于Azure Devops 无法从计算机上的注册表中找到 Dac Framework (SqlPackage.exe) 的位置的主要内容,如果未能解决你的问题,请参考以下文章

Azure Devops:即使在设置 NPM Authenticate 之后,也无法使用 NPM 私有注册表构建映像

在Azure中禁用更改跟踪

将文件上传到 azure devops

我可以在 Azure 虚拟机上安装 Azure Devops Build Agent 吗?

Azure DevOps 项目管道无法从不同项目中的工件源访问 NuGet 包

无法使用服务主体从发布管道访问 Azure Devops Git 存储库