Aktualizacja DACPAC z DACFx 3.0 API - Jak sprawdzić aktualną wersję DAC istniejącej bazy danych?

Obecnie przepisuję skrypt bazy danych Powershell mojego zespołu do korzystania z API DACFx 3.0 zamiast 2.0. Udało mi się sprawić, by aktualizacja DACPAC działała z powodzeniem przy użyciu nowegoMicrosoft.SqlServer.Dac.DacServices klasa kontrolera.

Pozostaje tylko problem: jak mogę pobrać aktualny numer wersji DACPAC z istniejącej bazy danych?

W ramach naszego skryptu wdrożeniowego porównujemy to z wersją DACPAC, którą aktualizujemy, aby ustalić, czy wdrożenie jest konieczne. Jest to również używane do decydowania o tym, czy uruchomić testy związane z bazą danych, więc w ten sposób ograniczymy znaczną ilość czasu na naszych kompilacjach.

Stary interfejs API DacFx2.0 mieszka wMicrosoft.SqlServer.Management.Dac przestrzeń nazw, więc w starym skrypcie Powershell po prostu stworzyliśmyDacStore obiekt z połączenia z bazą danych i wyłącz go z właściwości Version:

NASZ STARY 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 ****
}
...

Problem w wersji 3.0, API żyje wMicrosoft.SqlServer.Dac przestrzeń nazw i „Zamiast używaćDacStore iDacExtractionUnit lekcje z poprzednich wersji, większość wszystkiego została zmieniona na całkowicie nowąDacServices klasa kontrolera. (src) ”

Nie udało mi się znaleźć odpowiednikaDacStore wDacServices jeszcze klasa, więc w tej chwili nie wiem, jak pobrać aktualną wersję DAC. Próbowałem przeszukiwać dokumentacje MSDN, ale wszystkie ich sekcje Powershell nadal odwołują się do starego API DACFx2.0. (przykład:tutaj).

Gdyby ktoś mógł mi pomóc, byłoby to bardzo mile widziane. Dzięki!

questionAnswers(1)

yourAnswerToTheQuestion