Обновление DACPAC с помощью API DACFx 3.0 - Как проверить текущую версию DAC существующей базы данных?

В настоящее время я переписываю сценарий Powershell для развертывания базы данных моей команды, чтобы использовать API DACFx 3.0 вместо 2.0. Мне удалось заставить обновление DACPAC работать успешно, используя новыйMicrosoft.SqlServer.Dac.DacServices Контроллер класса.

Единственная проблема, которая остается: как я могу получить номер текущей версии DACPAC из существующей базы данных?

Как часть нашего сценария развертывания, мы сравниваем это с версией DACPAC, до которой мы обновляем, чтобы определить, необходимо ли развертывание. Это также используется, чтобы решить, следует ли запускать тесты, связанные с базой данных, поэтому таким образом мы сократили значительное количество времени на наши сборки.

Старый DacFx2.0 API живет вMicrosoft.SqlServer.Management.Dac пространство имен, поэтому в старом скрипте Powershell мы просто создалиDacStore возьмите объект из соединения с базой данных и получите от него свойство Version:

НАШ СТАРЫЙ СКРИПТ ПОЛОЖЕНИЯ

$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 ****
}
...

Проблема сейчас в 3.0, API живет вMicrosoft.SqlServer.Dac пространство имен и «Вместо использованияDacStore а такжеDacExtractionUnit классы из предыдущих версий, большинство всего было переделано во все новыеDacServices Контроллер класса. (ЦСИ

Я не смог найти эквивалентDacStore вDacServices класс еще, так что на данный момент я не знаю, как получить текущую версию ЦАП. Я пробовал искать в документации MSDN, но все их разделы Powershell все еще ссылались на старый API DACFx2.0. (пример:Вот).

Если бы кто-нибудь мог мне помочь, я был бы очень признателен. Спасибо!

Ответы на вопрос(1)

Ваш ответ на вопрос