[Windows][Linux]

安装 IBM MQ classes for .NET

IBM® MQ classes for .NET(包括样本) 随 IBM MQ 一起安装在 WindowsLinux®

必备软件和安装

IBM MQ 9.2.0开始,使用 .NET Standard 构建的 IBM MQ .NET 客户机库在 WindowsLinux上可用。 要运行 IBM MQ classes for .NET Standard,必须安装 Microsoft .NET CoreMicrosoft.NET Core 3.1 是运行 IBM MQ classes for .NET Standard所需的最低版本。

[MQ 9.3.0 2022 年 6 月][MQ 9.3.0 2022 年 6 月]IBM MQ 9.3.0开始, IBM MQ 支持 .NET 6 应用程序使用 IBM MQ classes for .NET Standard如果您正在使用 .NET Core 3.1 应用程序,那么可以通过在 csproj 文件中进行小型编辑来运行此应用程序,将 targetframeworkversion 设置为 "net6.0",而无需进行任何重新编译。

[MQ 9.3.1 2022 年 10 月]IBM MQ 9.3.1 提供了针对 .NET 6 构建的 IBM MQ .NET 客户机库作为目标框架。 从 IBM MQ 9.3.1开始, Microsoft .NET 6.0 是使用使用 .NET 6 作为目标框架构建的 IBM MQ 库来运行应用程序所需的最低版本。

[MQ 9.3.1 2022 年 10 月]IBM MQ 9.3.1开始,使用 .NET Standard 构建的 IBM MQ .NET 客户机库在新文件夹 netstandard2.0 下可用,使用 .NET 6 作为目标框架构建的 IBM MQ .NET 客户机库在 Windows 上的 MQ_INSTALLATION_PATH/binLinux上的 MQ_INSTALLATION_PATH/lib64 下可用。

缺省情况下, IBM MQ classes for .NET 的最新版本作为标准 IBM MQ 安装的一部分安装在 Java 和 .NET Messaging and Web Services 功能部件中。

[Windows]有关 Windows上的先决条件和安装的更多信息:
[Linux]有关 Linux上的先决条件和安装的更多信息:

可从 NuGet 存储库下载 IBM MQ classes for .NET Standardamqmdnetstd.dll。 有关更多信息,请参阅 从 NuGet 存储库下载 IBM MQ classes for .NET

amqmdnetstd.dll

[MQ 9.3.1 2022 年 10 月]IBM MQ 9.3.1开始, amqmdnetstd.dll 库在以下位置可用
使用 .NET Standard 2.0 作为目标框架构建的库
  • [Windows]Windows上: MQ_INSTALLATION_PATH\bin\netstandard2.0
  • [Linux]Linux上: MQ_INSTALLATION_PATH\lib64\netstandard2.0
[不推荐]不推荐使用这些库, IBM 打算在将来的发行版中除去这些库。
使用 .NET 6 作为目标框架构建的库
  • [Windows]Windows上: MQ_INSTALLATION_PATH\bin。 样本应用程序安装在 MQ_INSTALLATION_PATH/samp/dotnet/samples/cs/core/base中。
  • [Linux]Linux上: MQ_INSTALLATION_PATH\lib64.NET 样本位于 MQ_INSTALLATION_PATH/samp/dotnet/samples/cs/core/base中。
[MQ 9.3.1 2022 年 10 月]对于 IBM MQ 9.3.0 Long Term Supportamqmdnetstd.dll 库在以下位置可用:
  • [Windows]Windows上: MQ_INSTALLATION_PATH\bin。 样本应用程序安装在 MQ_INSTALLATION_PATH/samp/dotnet/samples/cs/core/base中。
  • [Linux]Linux上: MQ_INSTALLATION_PATH/lib64 path.NET 样本位于 MQ_INSTALLATION_PATH/samp/dotnet/samples/cs/core/base中。
注意: [不推荐][MQ 9.3.1 2022 年 10 月]IBM MQ 9.3.1开始,不推荐使用 .NET Standard 2.0 作为目标框架构建的 IBM MQ .NET 客户机库,在编译期间,引用这些库的应用程序会抛出警告 CS0618

[稳定][MQ 9.3.1 2022 年 10 月]仍提供了 .NET Frameworkamqmdnet.dll 库,但此库已稳定; 即,不会在其中引入任何新功能部件。 要使用任何最新功能,必须迁移到 amqmdnetstd.dll 库。 但是,您可以在 IBM MQ 9.1 或更高版本的 Long Term SupportContinuous Delivery 发行版上继续使用 amqmdnet.dll 库。

[MQ 9.3.1 2022 年 10 月]如果使用 amqmdnetstd.dllamqmxmsstd.dll 从低于 IBM MQ 9.3.1 的版本编译 .NET Framework 应用程序,并且使用基于 .NET 6IBM MQ 客户机库运行同一应用程序,请执行以下操作:FileLoadException异常类型由 .NET抛出:
捕获到异常: System.IO.FileLoadException: 无法装入文件或组合件 
'amqmdnetstd , Version =x.x.x.x,Culture=中性, PublicKeyToken=23d6cb914eeaac0e' 或 
它的一个依赖关系。 找到的组合件的清单定义与 
组合件引用。 (来自 HRESULT 的异常: 0x80131040)

文件名: ' amqmdnetstd , Version =x.x.x.x,Culture=中性, 
PublicKeyToken=23d6cb914eeaac0e' 
要解决此错误,必须将 MQ_INSTALLATION_PATH/bin/netstandard2.0 中存在的库复制到运行 .NET Framework 应用程序的目录中。

dspmqver 命令

您可以使用 dspmqver 命令来显示 .NET Core 组件的版本和构建信息。

IBM MQ classes for .NET FrameworkIBM MQ classes for .NET (.NET Standard.NET 6 库) 之间的功能部件比较

下表列出了与 IBM MQ classes for .NET (.NET Standard.NET 6 库) 的功能部件相比, IBM MQ classes for .NET Framework 的功能部件。

表 1. IBM MQ classes for .NET FrameworkIBM MQ classes for .NET (.NET Standard.NET 6 库) 之间的差异
功能部件 IBM MQ classes for .NET Framework IBM MQ classes for .NET (.NET Standard.NET 6 库)
类名 (API) 所有类在每个网络中都保持不变。 所有类在每个网络中都保持不变。
操作系统 Windows
Windows
Dockerized 容器

Linux

macOS

app.config 文件(用于在可再分发客户机中启用跟踪的配置文件) app.config 文件用于对可再分发软件包和独立 IBM MQ .NET 客户机启用跟踪。

有关用于跟踪的变量 (包括 MQTRACEPATHMQTRACELEVEL) 的更多信息,请参阅 使用应用程序配置文件跟踪 IBM MQ classes for .NET Framework 客户机

不支持 app.config。 使用环境变量。
跟踪 对于 IBM MQ的完整客户机安装,您可以使用 strmqtrc 命令对 IBM MQ classes for .NET Framework启用跟踪。

对于可再分发的客户机,还会使用 app.config 文件来启用跟踪。

有关更多信息,请参阅 跟踪 IBM MQ .NET 应用程序

[MQ 9.3.3 2023 年 6 月]IBM MQ 9.3.3开始,您可以使用 mqclient.ini 文件并设置 Trace 节的相应属性来启用和禁用跟踪。 您还可以使用 mqclient.ini 文件动态启用和禁用跟踪。 有关更多信息,请参阅 使用 mqclient.ini跟踪 IBM MQ .NET 应用程序

环境变量 MQDOTNET_TRACE_ON 用于对可重新分发的客户机启用跟踪。 等于或小于 0 的值不会启用跟踪。 值 1 将启用缺省级别跟踪。 大于 1 的值将启用详细跟踪。 将此环境变量设置为任何其他值 (例如,字符串) 不会启用跟踪。 请参阅 使用环境变量跟踪 IBM MQ .NET 应用程序

MQDOTNET_TRACE_ON 环境变量检查 IBM MQ 跟踪目录是否可用。 如果跟踪目录可用,那么将在跟踪目录中生成跟踪文件。 但是,如果未安装 IBM MQ ,那么会将跟踪文件复制到当前工作目录。

可用于 IBM MQ classes for .NET Framework的其他环境变量 (包括 MQERRORPATHMQLOGLEVELMQSERVER等) 可以以相同方式使用和工作。

[MQ 9.3.3 2023 年 6 月]IBM MQ 9.3.3开始,您可以使用 mqclient.ini 文件并设置 Trace 节的相应属性来启用和禁用跟踪。 您还可以使用 mqclient.ini 文件动态启用和禁用跟踪。 有关更多信息,请参阅 使用 mqclient.ini跟踪 IBM MQ .NET 应用程序

传输方式 受管、非受管和绑定 受管
TLS Windows 密钥库用于存储证书。

[Windows]Windows上,必须使用密钥库来存储证书。 允许的值为 *USER 或 *SYSTEM。 根据输入, IBM MQ .NET 客户机将查看当前用户或系统范围的 Windows 密钥库。

[Linux]Linux上,建议使用 X509Store 类来安装证书, .NET Core 将证书安装到以下位置: ".dotnet/corefx/cryptography/x509stores"

CCDT 支持 支持,并且 CCDT 路径的设置对与 .NET Framework 类的相同。
客户机自动重新连接 支持 支持
分布式事务 支持 不支持
将动态链接库 (dll's) 安装到全局组合件高速缓存 (GAC) 中 Dll 作为 IBM MQ 安装的一部分安装到 GAC 中。 Dll 未作为 IBM MQ 安装的一部分安装到 GAC 中。
[Windows]注: Windows 安全标识 (SID):

IBM MQ classes for .NET (.NET Standard.NET 6 库) 不支持域级别认证。 将使用已登录的用户标识进行认证。

[macOS]

macOS 上开发 IBM MQ .NET Core 应用程序

可以在 macOS上开发 IBM MQ .NET Core 应用程序。

IBM MQ .NET 库未与 macOS 工具箱打包在一起,因此您必须将它们从 WindowsLinux IBM MQ 客户机复制到 macOS。 然后,可以使用这些库在 macOS上开发 IBM MQ .NET Core 应用程序。

开发后,可以在 WindowsLinux 环境上运行这些应用程序。