Обновление 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. (пример:Вот).
Если бы кто-нибудь мог мне помочь, я был бы очень признателен. Спасибо!