![[Windows]](ngwin.gif)
![[Linux]](nglinux.gif)
安装 IBM MQ classes for .NET
IBM® MQ classes for .NET(包括样本) 随 IBM MQ 一起安装在 Windows 和 Linux® 上
必备软件和安装
从 IBM MQ 9.2.0开始,使用 .NET Standard 构建的 IBM MQ .NET 客户机库在 Windows 和 Linux上可用。 要运行 IBM MQ classes for .NET Standard,必须安装 Microsoft .NET Core。 Microsoft.NET Core 3.1 是运行 IBM MQ classes for .NET Standard所需的最低版本。
![[MQ 9.3.0 2022 年 6 月]](ng930cd.gif)
从 IBM MQ 9.3.0开始, IBM MQ 支持 .NET 6 应用程序使用 IBM MQ classes for .NET Standard。 如果您正在使用 .NET Core 3.1 应用程序,那么可以通过在 csproj 文件中进行小型编辑来运行此应用程序,将 targetframeworkversion 设置为 "net6.0",而无需进行任何重新编译。
IBM MQ 9.3.1 提供了针对 .NET 6 构建的 IBM MQ .NET 客户机库作为目标框架。 从 IBM MQ 9.3.1开始, Microsoft .NET 6.0 是使用使用 .NET 6 作为目标框架构建的 IBM MQ 库来运行应用程序所需的最低版本。
从 IBM MQ 9.3.1开始,使用 .NET Standard 构建的 IBM MQ .NET 客户机库在新文件夹 netstandard2.0 下可用,使用 .NET 6 作为目标框架构建的 IBM MQ .NET 客户机库在 Windows 上的 MQ_INSTALLATION_PATH/bin 和 Linux上的 MQ_INSTALLATION_PATH/lib64 下可用。
缺省情况下, IBM MQ classes for .NET 的最新版本作为标准 IBM MQ 安装的一部分安装在 Java 和 .NET Messaging and Web Services 功能部件中。
有关 Windows上的先决条件和安装的更多信息:- 请参阅 IBM MQ classes for .NET 的需求,以获取用于运行 IBM MQ classes for .NET的必备软件。
- 请参阅在 Windows 上安装 IBM MQ 服务器或在 Windows 系统上安装 IBM MQ 客户机,以获取安装指示信息。
有关 Linux上的先决条件和安装的更多信息:- 请参阅 IBM MQ classes for .NET 的需求,以获取用于运行 IBM MQ classes for .NET的必备软件。
- 有关 rpm 安装指示信息,请参阅 在 Linux 系统上安装 IBM MQ 客户机。
- 对于 Linux Ubuntu,使用 Debian 软件包,请参阅 在 Linux 系统上安装 IBM MQ 客户机。
可从 NuGet 存储库下载 IBM MQ classes for .NET Standard 库 amqmdnetstd.dll。 有关更多信息,请参阅 从 NuGet 存储库下载 IBM MQ classes for .NET。
amqmdnetstd.dll库
从 IBM MQ 9.3.1开始, amqmdnetstd.dll 库在以下位置可用- 使用 .NET Standard 2.0 作为目标框架构建的库
在 Windows上: MQ_INSTALLATION_PATH\bin\netstandard2.0。
在 Linux上: MQ_INSTALLATION_PATH\lib64\netstandard2.0。
- 使用 .NET 6 作为目标框架构建的库
在 Windows上: MQ_INSTALLATION_PATH\bin。 样本应用程序安装在 MQ_INSTALLATION_PATH/samp/dotnet/samples/cs/core/base中。
在 Linux上: MQ_INSTALLATION_PATH\lib64。 .NET 样本位于 MQ_INSTALLATION_PATH/samp/dotnet/samples/cs/core/base中。
对于 IBM MQ 9.3.0 Long Term Support, amqmdnetstd.dll 库在以下位置可用:
在 Windows上: MQ_INSTALLATION_PATH\bin。 样本应用程序安装在 MQ_INSTALLATION_PATH/samp/dotnet/samples/cs/core/base中。
在 Linux上: MQ_INSTALLATION_PATH/lib64 path。 .NET 样本位于 MQ_INSTALLATION_PATH/samp/dotnet/samples/cs/core/base中。
![[不推荐]](ngdeprecated.gif)
从 IBM MQ 9.3.1开始,不推荐使用 .NET Standard 2.0 作为目标框架构建的 IBM MQ .NET 客户机库,在编译期间,引用这些库的应用程序会抛出警告 CS0618 。![[稳定]](ngstabilized.gif)
仍提供了 .NET Framework 的 amqmdnet.dll 库,但此库已稳定; 即,不会在其中引入任何新功能部件。 要使用任何最新功能,必须迁移到 amqmdnetstd.dll 库。 但是,您可以在 IBM MQ 9.1 或更高版本的 Long Term Support 或 Continuous Delivery 发行版上继续使用 amqmdnet.dll 库。
如果使用 amqmdnetstd.dll 或 amqmxmsstd.dll 从低于 IBM MQ 9.3.1 的版本编译 .NET Framework 应用程序,并且使用基于 .NET 6 的 IBM 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 Framework 与 IBM MQ classes for .NET (.NET Standard 和 .NET 6 库) 之间的功能部件比较
下表列出了与 IBM MQ classes for .NET (.NET Standard 和 .NET 6 库) 的功能部件相比, IBM MQ classes for .NET Framework 的功能部件。
| 功能部件 | 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 客户机启用跟踪。 有关用于跟踪的变量 (包括 MQTRACEPATH 和 MQTRACELEVEL) 的更多信息,请参阅 使用应用程序配置文件跟踪 IBM MQ classes for .NET Framework 客户机 。 |
不支持 app.config。 使用环境变量。 |
| 跟踪 | 对于 IBM MQ的完整客户机安装,您可以使用 strmqtrc 命令对 IBM MQ classes for .NET Framework启用跟踪。 对于可再分发的客户机,还会使用 app.config 文件来启用跟踪。 有关更多信息,请参阅 跟踪 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的其他环境变量 (包括 MQERRORPATH, MQLOGLEVEL和 MQSERVER等) 可以以相同方式使用和工作。
|
| 传输方式 | 受管、非受管和绑定 | 受管 |
| TLS | Windows 密钥库用于存储证书。 |
|
| CCDT | 支持 | 支持,并且 CCDT 路径的设置对与 .NET Framework 类的相同。 |
| 客户机自动重新连接 | 支持 | 支持 |
| 分布式事务 | 支持 | 不支持 |
| 将动态链接库 (dll's) 安装到全局组合件高速缓存 (GAC) 中 | Dll 作为 IBM MQ 安装的一部分安装到 GAC 中。 | Dll 未作为 IBM MQ 安装的一部分安装到 GAC 中。 |
注: Windows 安全标识 (SID):IBM MQ classes for .NET (.NET Standard 和 .NET 6 库) 不支持域级别认证。 将使用已登录的用户标识进行认证。
![[macOS]](ngmacos.gif)
在 macOS 上开发 IBM MQ .NET Core 应用程序
可以在 macOS上开发 IBM MQ .NET Core 应用程序。
IBM MQ .NET 库未与 macOS 工具箱打包在一起,因此您必须将它们从 Windows 或 Linux IBM MQ 客户机复制到 macOS。 然后,可以使用这些库在 macOS上开发 IBM MQ .NET Core 应用程序。
开发后,可以在 Windows 或 Linux 环境上运行这些应用程序。
从