2
votes

We recently upgraded our tabular SSAS instances to SQL Server 2017 (v 14.0.2.04.1) We have a CI/CD process for our tabular models using the TOM library and it works great for compatibility level 1200, but when we change the model's compatibility level to 1400 and use new functionality (specifically defaultDetailRowsDefinition) the call to [Microsoft.AnalysisServices.Tabular.JsonSerializer]::DeserializeDatabase to deserialize the .bim file fails with the error:

"Unrecognized JSON property: defaultDetailRowsDefinition. Check path 'model.tables[0].defaultDetailRowsDefinition'

Ok, we need to upgrade the TOM assemblies, so I head to the SQL Server 2017 feature pack page but I can't find the SQL_AS_AMO installer. Microsoft's documentation for installing/distributing TOM assemblies has not been updated for 2017. Any ideas of how we can get the latest TOM functionality for SSAS tabular compatibility level 1400?

2

2 Answers

3
votes

Adding to Mark's answer, you can always find the latest TOM assemblies here:

At the time of this writing, they are at 15.1.0.

3
votes

What you're experiencing is DLL Hell. Until Microsoft releases the SQL_AS_AMO, you'll need to track down the .dll's you need.

To do that, I went to a server where we recently installed SSAS 2017 and found folders for each of the listed .dll's in the C:\Windows\Microsoft.NET\assembly\GAC_MSIL folder.

GAC Folder Location

From there, open the Microsoft.AnalysisServices.Tabular folder to see the latest version installed for SSAS 2017:

The contents of the Microsoft.AnalysisServices.Tabular folder contains multiple versions of the DLL you need

Move the missing subfolder to your deployment VM and you should be good to go.