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 项目扩展安装所有三个客户端库,并更新它们以及常规应用程序更新。 Analysis Services 的自定义客户端应用程序可能还需要安装其中一个或多个客户端库。 客户端库的新版本大约每月更新一次。

重要提示: 在获取最新版本之前,请务必查看 注意事项和限制

下载最新版

Windows Installer

下载 版本
MSOLAP (amd64) 16.0.142.20
MSOLAP (x86) 16.0.142.20
AMO 19.84.1.0
ADOMD 19.84.1.0

注意: Analysis Services 管理对象(AMO/TOM)和 ADOMD 的 Windows Installer 下载不再更新,在 2024 年 12 月 31 日之后将不可用。 依赖这些 Windows Installer 下载的应用程序应迁移到 NuGet 包。

NuGet 包

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

NuGet 包程序集 AssemblyVersion 遵循语义版本控制:MAJOR。次要。补丁。 NuGet 引用会加载预期版本,即使 GAC 中存在其他版本(由 MSI 安装生成)。 每个版本都会递增 PATCH。 AMO 和 ADOMD 版本保持同步。

从 2024 年 7 月开始,AMO 和 ADOMD 包包含所有受支持的目标运行时的多运行时版本,包括 .NET FX 和 .NET Core;仅面向单个运行时(即 .NET FX 或 .NET Core)的包的早期版本可用于向后兼容,但不再更新。

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

从 2021 年 2 月开始,.NET Core 运行时支持可用于 AMO 和 ADOMD 客户端包。 但是,.NET Core 版本不支持几个方案。 若要了解详细信息,请参阅本文后面的 注意事项和限制

AMO 和 ADOMD

版本
AMO 19.84.1
ADOMD 19.84.1

注意:

新的多运行时包不再具有包标识中的“.retail.amd64”后缀,现在只需调用 Microsoft.AnalysisServices 和 Microsoft.AnalysisServices.AdomdClient。

旧版 .NET Framework 和 .NET Core 包仍可在 nuget.org 中提供,以便在旧标识下与 .NET Framework 的“.retail.amd64”后缀和“.retail.amd64”后缀保持向后兼容性。.NET Core 的 NetCore.retail.amd64“后缀。

所需的最低版本

2021 年 6 月 30 日,Microsoft Entra ID 中 弃用传输层安全性 (TLS) 协议版本 1.0/1.1。 现在需要 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.82.0.0 开始,AMO 和 ADOMD 支持服务主体配置文件进行身份验证,如以下连接字符串示例所示。 若要了解详细信息,请参阅 使用服务主体配置文件管理多租户应用中的客户数据

Data Source=powerbi://api.powerbi.com/v1.0/myorg/<WorkspaceName>;User ID=app:<service principal id>@<tenant id>;SPN Profile=<service-principal profile id>;Password=<service-principal's secret>

从版本 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 桌面运行时。

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

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

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

AMO

AMO 客户端库版本 19.12.3.0 引入了新的枚举,Microsoft.AnalysisServices.DataType。 但是,前面的枚举 Microsoft.AnalysisServices.Tabular.DataType 仍然存在。 如果代码在代码文件中将前一个枚举引用为 DataType,并且两个命名空间(Microsoft.AnalysisServicesMicrosoft.AnalysisServices.Tabular),则编译时可能会出错。 若要解决此错误,请完全限定对枚举的引用。

AMO 客户端库版本 19.61.1.4 引入了 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 引用。 必须将克隆添加到模型,因为交叉引用的命名表达式是模型表达式集合的成员,而不是表的子对象的树的一部分。

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.139.27 开始,MSOLAP 支持服务主体配置文件进行身份验证,如以下连接字符串示例所示。 若要了解详细信息,请参阅 使用服务主体配置文件管理多租户应用中的客户数据

Data Source=powerbi://api.powerbi.com/v1.0/myorg/<WorkspaceName>;User ID=app:<service principal id>@<tenant id>;SPN Profile=<service-principal profile id>;Password=<service-principal's secret>

从版本 16.0.134.22 开始,MSOLAP 支持使用 Windows 10 及更高版本以及 Window Server 2019 及更高版本的 Web 帐户管理器(WAM)的无提示单 Sign-On(SSO)。 打开新的 HTTP 连接后,MSOLAP 将获取访问令牌,如下所示:

  1. 如果启用了令牌缓存,并且缓存中提供了合适的令牌,MSOLAP 将使用缓存的令牌。
  2. 如果合适的缓存令牌不可用,MSOLAP 会尝试通过 WAM 以无提示方式获取访问令牌。
  3. 如果使用 WAM 的 SSO 失败,MSOLAP 会回退到交互式身份验证并弹出登录窗口。

用户可以绕过无提示 SSO 流,并通过在连接字符串中提供“空”用户 ID 来立即启动交互式身份验证体验。

从版本 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 OLE DB 访问接口由用于访问 Analysis Services 数据库的大多数工具和客户端应用程序自动安装。 它必须安装在用于访问 Analysis Services 数据的计算机上。

OLE DB 提供程序通常在连接字符串中指定。 Analysis Services 连接字符串使用不同的名词来引用 OLE DB 提供程序:MSOLAP。<版本>.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 Installer 包以运行安装程序。

  3. 在安装程序中,单击“下一步”

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

  5. 单击 安装

  6. 完成后,单击 完成