2

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?

Brandon McClure
  • 1,329
  • 1
  • 11
  • 32

2 Answers2

3

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.

Mark Iannucci
  • 135
  • 3
  • 11
3

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.

Dan
  • 10,480
  • 23
  • 49
  • Thank you @Dan, this is the sort of answer I am looking for. Using the latest MSI installer I am getting different errors in my build script than using the v13 assemblies, and Mark's answer using the v14 assemblies from my SSAS box is working as I would expect. I have not dug into my errors, but I am going to move to using the NuGet package and will update the answer with the results of that refactor. – Brandon McClure Jun 11 '18 at 15:18