Atualizando os DACPACs com a API do DACFx 3.0 - Como inspecionar a versão atual do DAC de um banco de dados existente?

No momento, estou reescrevendo o script Powershell de implantação de banco de dados da minha equipe para usar a API do DACFx 3.0 em vez de 2.0. Consegui fazer com que a atualização do DACPAC funcionasse com sucesso, usando o novoMicrosoft.SqlServer.Dac.DacServices classe do controlador.

O único problema que permanece é: como posso pegar o número atual da versão do DACPAC de um banco de dados existente?

Como parte do nosso script de implantação, estamos comparando isso com a versão do DACPAC para a qual estamos atualizando, para determinar se uma implantação é necessária. Isso também é usado para decidir se os testes relacionados ao banco de dados devem ser executados, por isso, reduzimos uma quantidade significativa de tempo em nossas compilações.

A antiga API DacFx2.0 mora noMicrosoft.SqlServer.Management.Dac namespace, então no antigo roteiro de Powershell nós simplesmente criamos umDacStore Objeto da conexão do banco de dados e obter a propriedade de versão dele:

O nosso antigo script 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 ****
}
...

A questão agora em 3.0, a API vive noMicrosoft.SqlServer.Dac namespace e "Em vez de usar oDacStore eDacExtractionUnit classes de versões anteriores, mais tudo foi refatorado no novoDacServices classe do controlador. (src) "

Eu não consegui encontrar um equivalente deDacStore noDacServices classe ainda, então a partir de agora eu não sei como recuperar a versão atual do DAC. Eu tentei pesquisar por documentações do MSDN, mas todas as suas seções do Powershell ainda faziam referência à antiga API do DACFx2.0. (exemplo:Aqui).

Se alguém pudesse me ajudar, isso seria muito apreciado. Obrigado!

questionAnswers(1)

yourAnswerToTheQuestion