Analysis Services 客户端库

适用于: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

客户端应用程序和工具连接到 Analysis Services 时需要使用客户端库。 Microsoft 客户端应用程序(例如 Power BI Desktop、Excel、SQL Server Management Studio (SSMS) 和适用于 Visual Studio 的 Analysis Services 项目扩展)会安装全部三个客户端库并与常规应用程序更新一起更新它们。 自定义客户端应用程序还需要安装客户端库。 客户端库会每月更新。

重要: 在获取最新版本之前,请务必查看 已知问题

下载最新

Windows Installer

下载 版本
MSOLAP (amd64) 16.0.127.28
MSOLAP (x86) 16.0.127.28
AMO 19.77.0.0
ADOMD 19.77.0.0

NuGet 包

Analysis Services 管理对象 (AMO/TOM) 和 ADOMD 客户端库作为 NuGet.org 的可安装包提供。建议迁移到 NuGet 引用,而不是使用 Windows Installer。

从 2021 年 2 月开始,还提供了等效于 AMO 和 ADOMD 客户端包的 .NET Core 包版本。 但是,有一些方案不受 .NET Core 版本支持。 若要了解详细信息,请参阅本文后面的 已知问题

NuGet 包程序集 AssemblyVersion 遵循语义版本控制:MAJOR.MINOR.PATCH。 NuGet 引用加载预期版本,即使 GAC (因 MSI 安装) 而使用不同的版本也是如此。 PATCH 将随每次发布递增。 AMO 和 ADOMD 版本保持同步。

AMO 和 ADOMD

程序包 版本
AMO 19.77.0
ADOMD 19.77.0

AMO 和 ADOMD .Net Core

程序包 版本
AMO .Net Core 19.77.0
ADOMD .Net Core 19.77.0

从 AMO (AMO/TOM) 和 ADOMD .Net Core版本 19.48.0.0 开始,与 Power BI 和 Azure Analysis Services 等云服务的基于 HTTP 的通信得到了显著改进。 建议更新到最新版本,以利用这些性能改进。

TMDL 预览版

从 AMO 版本 19.72.0 开始,TMDL 功能现在包含在 Microsoft.AnalysisServices.Tabular.dll 中。 如果一直在使用 Microsoft.AnalysisServices.Tabular.Tmdl NuGet 包,请务必 将其从项目中删除并重新编译

对 TMDL API 进行了以下更改,可能会影响代码:

  • TmdlFormatException 属性名称更改。 例如, “路径” 更改为 “文档”。

若要详细了解 TMDL,请参阅 表格模型定义语言概述

所需的最低版本

传输层安全 (TLS) 协议版本 1.0/1.1 已于 2021 年 6 月 30 日Microsoft Entra ID弃用。 现在需要 TLS 1.2 或更高版本。 早期版本的 Analysis Services 客户端库不支持 TLS 1.2。 较新的客户端库版本包括对 TLS 1.2 及更高版本的支持以及其他重要的安全增强功能。

为了最大程度地降低风险和潜在的安全漏洞,从 2021 年 6 月 30 日开始,Azure Analysis Services和 Power BI 中增强的安全性需要以下或更高版本:

客户端库 文件版本 版本
MSOLAP 2018.151.61.21 15.1.61.21
AMO 15.1.61.21 19.12.3.0
ADOMD 15.1.61.21 19.12.3.0

已知问题

AMO 和 ADOMD

从版本 19.67.0 开始,连接对象(如 Microsoft.AnalysisServices.AdomdClient.AdomdConnection 和 Microsoft.AnalysisServices.Server)支持新的 AccessToken 属性,该属性支持一种改进的方法来传递 XMLA 连接层要使用的外部 OAuth 令牌。 若要了解详细信息,请参阅 连接字符串属性 - 用户 ID=...;Password=

从版本 19.42.0.4 开始,ADOMD.NET 和 AMO/TOM 使用 MSAL (Microsoft.Identity.Client) 版本 4.43.0 或更高版本(而不是 ADAL)在与 Power-BI 和 Azure Analysis Services 等基于云的服务建立连接时使用 Microsoft Entra ID 对用户进行身份验证。 如果应用程序或应用程序所依赖的其他组件正在使用 MSAL,则如果组件加载的 MSAL 版本之间存在冲突,则可能需要更新应用程序的绑定重定向设置。

AMO 和 ADOMD .Net Core

支持的方案包括与Azure Analysis Services、Power BI Premium和SQL Server Analysis Services的连接。 仅 Windows 计算机支持基于 TCP 的连接。

仅 Windows 计算机支持使用 Microsoft Entra ID 进行交互式登录。 需要 .NET Core Desktop 运行时。

MSAL 中的依赖项需要版本 4.43.0 或更高版本。

.Net Core客户端库的版本 19.14.0 除了支持 .NET 5.0 项目使用外,还对在已发布的目录和单文件模式下 (发布) (引入了预览 Self-Contained 支持。 修复了在上一版本中发现的与SQL Server Analysis Services连接相关的几个问题。

.Net Core客户端库的版本 19.12.7.2 引入了对SQL Server Analysis Services的支持。 较低预览版本仅支持Azure Analysis Services和 Power BI 语义模型。

AMO

版本 19.12.3.0 的 AMO 客户端库引入了新的枚举 Microsoft.AnalysisServices.DataType。 但是,前面的枚举 Microsoft.AnalysisServices.Tabular.DataType 仍然存在。 如果代码在代码文件中引用以前的枚举作为 DataType ,其中包含两个命名空间 (Microsoft.AnalysisServicesMicrosoft.AnalysisServices.Tabular) 的语句,则由于不明确性,可能会在编译时收到错误。 若要解决此错误,请完全限定对枚举的引用。

版本 19.61.1.4 的 AMO 客户端库引入了 Microsoft.AnalysisServices.Server 的事务回滚行为的更改。 在早期版本中,调用 Server.RollbackTransaction () 向引擎发送请求以回滚事务,然后尝试回滚本地更改。 与早期版本不同,在 19.61.1.4 及更高版本中,如果无法安全地回滚本地更改,则事务中包含的表格数据库会阻止任何其他更改,直到它们完全同步,并且从已回滚的事务中删除过时的更改。 对相关表格数据库进行更改时,将引发 InvalidOperationException 。 如果代码调用 Server.RollbackTransaction () ,建议对作为事务一部分修改的任何表格数据库执行完全同步 [Database.Refresh (true) ]。

从版本 19.77.0 开始,使用表格对象模型 (TOM) 将 MetadataObject 克隆或复制到 MetadataObject 的另一个实例时,TOM 为在 MetadataObject 的直接子对象树外部交叉引用对象的属性返回 null。 必须将克隆的 MetadataObject 实例添加到语义模型,以便可以解析对 MetadataObject 树外部对象的交叉引用。

例如,克隆具有引用 EntityPartitionSource 中命名表达式的分区的表时,EntityPartitionSource 的 ExpressionSource 属性将返回 null,直到将克隆的表添加到语义模型中,如下面的代码片段所示,以便可以解析克隆的 ExpressionSource 引用。 必须将克隆添加到模型中,因为交叉引用的命名表达式是模型的 Expressions 集合的成员,而不是表的子对象树的一部分。

Table tableClone = model.Tables[0].Clone();
anotherModel.Tables.Add(tableClone);

ADOMD

从 ADOMD (.NET Framework 和 .NET Core) 版本 19.61.1.4 开始,压缩在 XMLA 传输层中完全可用。 版本 19.55.3.1 之后的早期版本实现了对压缩的一些部分支持。 收到有关这些版本问题的报告。 这些问题已作为 16.61.1.4 版本的一部分修复。 如果遇到与压缩相关的问题,请务必升级到 19.61.1.4 或更高版本。

MSOLAP

从版本 16.0.43.20 开始,MSOLAP 使用 MSAL (Microsoft.Identity.Client) 版本 4.43.0 或更高版本(而不是 ADAL)在与 Power-BI 和 Azure Analysis Services 等基于云的服务建立连接时使用Microsoft Entra ID对用户进行身份验证。 如果应用程序或应用程序所依赖的另一个组件正在使用 MSAL,则如果组件加载的 MSAL 版本之间存在冲突,则可能需要更新应用程序的绑定重定向设置

在 16.0.4.17 版本的 OLEDB (MSOLAP) 中发现了与使用 Microsoft Entra ID 连接到基于云的系统的回归。 此问题已在 16.0.20.201 版本中修复。 由于问题的性质,安装的 16.0.4.17 版本以及 16.0.20.201 之前的任何其他版本都无法通过升级提供程序进行更正,即使安装程序是在修复模式下运行的。 建议完全卸载 16.0.4.17 [或其他有问题的] 版本,然后安装 16.0.20.201 或更高版本。

在早期版本中,MSOLAP 已更新为使用托管 Microsoft 身份验证库 (MSAL) 连接到基于云的 Analysis Services。 从版本 16.0.87.16 开始,MSOLAP 安装程序不再安装原始的本机 Azure Active Directory 身份验证库 (ADAL) 组件。

了解客户端库

Analysis Services 利用三个客户端库。 ADOMD.NET 和 Analysis Services 管理对象 (AMO) 都是托管型客户端库。 Analysis Services OLE DB 提供程序 (MSOLAP DLL) 是本机客户端库。 通常,所有这三个客户端库会同时安装。

Microsoft 客户端应用程序(例如 Power BI Desktop 和 Excel)会安装所有这三个客户端库,有新版本可用时,会更新这些库。 根据更新的版本或频率,某些客户端库可能不是 Azure Analysis Services 和 Power BI 所需的最新版本。 这同样适用于自定义应用程序或其他接口,例如 AsCmd、TOM、ADOMD.NET。 这些应用程序需要手动或以编程方式安装库。 用于手动安装的客户端库作为可分发包包含在 SQL Server 功能包中。 但是,这些客户端库与 SQL Server 版本关联,可能不是最新的。 请确保始终安装可从本文下载的最新版。

客户端库类型

Analysis Services OLE DB 访问接口 (MSOLAP)

Analysis Services OLE DB 提供程序 (MSOLAP) 是用于建立 Analysis Services 数据库连接的本机客户端库。 ADOMD.NET 和 AMO 间接使用它向数据提供程序委托连接请求。 也可以直接从应用程序代码调用 OLE DB 提供程序。

用于访问 Analysis Services 数据库的大多数工具和客户端应用程序可自动安装 Analysis Services OLE DB 提供程序。 必须将它安装在用于访问 Analysis Services 数据的计算机上。

OLE DB 提供程序通常在连接字符串中指定。 Analysis Services 连接字符串使用不同的命名法来引用 OLE DB 提供程序:MSOLAP。<version>.dll。

AMO

AMO 是用于服务器管理和数据定义的托管客户端库。 它由工具和客户端应用程序安装和使用。 例如,SQL Server Management Studio (SSMS) 使用 AMO 连接到 Analysis Services。 使用 AMO 的连接通常非常精简,由 "data source=\<servername>" 组成。 建立连接后,可以使用 API 来处理数据库集合和主要对象。 Visual Studio 和 SSMS 都使用 AMO 连接到 Analysis Services 实例。

ADOMD

ADOMD.NET 是用于查询 Analysis Services 数据的托管数据客户端库。 它由工具和客户端应用程序安装和使用。

连接到数据库时,所有三个库的连接字符串属性相似。 使用 Microsoft.AnalysisServices.AdomdClient.AdomdConnection.ConnectionString 为 ADOMD.NET 定义的几乎任何连接字符串也适用于 AMO 和 Analysis Services OLE DB 提供程序 (MSOLAP) 。 若要了解详细信息,请参阅 连接字符串属性

检查已安装的版本

OLEDDB (MSOLAP)

  1. 转到 C:\Program Files\Microsoft Analysis Services\AS OLEDB\ 。 如果有多个文件夹,请选择较大的数字。

  2. 右键单击“msolap.dll”>“属性”>“详细信息”。 检查 “产品版本 ”属性。 注意:如果文件名 msolap140.dll,则它早于最新版本,应升级。

    MSOLAP 客户端库详细信息对话框

AMO

  1. 转到 C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.AnalysisServices\ 。 如果有多个文件夹,请选择较大的数字。

  2. 右键单击“Microsoft.AnalysisServices”>,选择“属性”>“详细信息”。

    AMO 客户端库详细信息对话框

ADOMD

  1. 转到 C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.AnalysisServices.AdomdClient\ 。 如果有多个文件夹,请选择较大的数字。

  2. 右键单击“Microsoft.AnalysisServices.AdomdClient”>,选择“属性”>“详细信息”。

    ADOMD 客户端库详细信息对话框

手动更新

客户端库通常随使用它们的工具和客户端应用程序一起自动更新和更新。 但是,在某些情况下,客户端库可能不会自动更新,并且必须手动更新每个库。 若要手动更新,请为每个客户端库下载并运行 Windows Installer (.msi) 包。

下载和更新

  1. 点击:

  2. “下载”中,单击 Windows 安装程序包以运行安装程序。

  3. 在“设置”中,单击“ 下一步”。

  4. 阅读许可协议。 如果同意,请选择“ 我接受许可协议中的条款”,然后单击“ 下一步”。

  5. 单击“ 安装”。

  6. 完成后,单击“ 完成”。