我目前正在重写我团队的数据库部署 Powershell 脚本以使用 DACFx 3.0 API 而不是 2.0。我已成功使用新的控制器类使 DACPAC 升级成功Microsoft.SqlServer.Dac.DacServices。
剩下的唯一问题是:如何从现有数据库中获取当前 DACPAC 版本号?
作为部署脚本的一部分,我们将其与要升级到的 DACPAC 版本进行比较,以确定是否需要部署。这也用于决定是否运行与数据库相关的测试,因此这样我们就可以减少大量的构建时间。
旧的 DacFx2.0 API 位于Microsoft.SqlServer.Management.Dac命名空间中,因此在旧的 Powershell 脚本中,我们只需DacStore从数据库连接创建一个对象并从中获取 Version 属性:
我们的旧 POWERSHELL 脚本
$dacStore = New-Object Microsoft.SqlServer.Management.Dac.DacStore($serverConnection)
Write-Host "The following data-tier applications (instances) exist in the DAC store:"
foreach($dacInstance in $dacStore.DacInstances)
{
Write-Host Instance Name: $dacInstance.Name
Write-Host DAC Type Application Name: $dacInstance.Type.Name
Write-Host DAC Type Version: $dacInstance.Type.Version <--- **** this is what I need ****
}
...
Run Code Online (Sandbox Code Playgroud)
现在的问题是 3.0,API 存在于 …