使用 DacServices 部署时获取目标机器上的 SqlServer Dac 程序集文件路径

Getting SqlServer Dac assembly file path on target machine when using DacServices to deploy

我正在调用 DacServices API 来部署 DACPAC,这需要 Microsoft.SqlServer.Dac 的程序集引用。 运行 我的安装程序可以在 D 盘上安装 SSDT/SQL 的目标机器,或者可以安装更高版本的 SQLServer。

如何在使用 DacServices 部署时动态获取目标机器上的 Microsoft.SqlServer.Dac 程序集文件路径(如果我们使用 SqlPackage.exe 会遇到同样的问题,因为我需要动态获取找到目标上的 120/DAC/bin 或 130/DAC/bin 文件夹 运行 我的安装程序)?

或者,如果有人可以针对此问题提出任何其他解决方案,以便同一个 exe 可以在不同 machines/environments 上运行,那就太好了。

DacFramework.msi 的现代版本请注意注册表中 HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\Data-Tier 应用程序 Framework\InstallLocation.

下的安装位置

但是,最好在安装程序中包含 DacFramework 程序集并调用该代码。数据层应用程序框架由 Microsoft 许可为 "redistributable" 代码。