Microsoft have announced that .NET 6 is currently the primary implementation, and the one that's the focus of ongoing development. .NET 6 is built on a single code base that supports multiple platforms and many workloads, such as Windows desktop apps and cross-platform console apps, cloud services, and websites.
Microsoft also have announced that .NET Standard 2.1 is the last version from the .NET Standard and no new versions will be released though it is supported. For any new development it is going to be .NET 6.
Since .NET 6 is the focus for .NET applications, IBM MQ have provided new set of MQ .NET 6 API’s specifically for .NET 6 applications. The existing MQ .NET Standard libraries will be deprecated, and IBM intends to remove these libraries in future.
The new set of IBM MQ .NET 6 API’s are provided with the same naming convention as the existing IBM MQ .NET Standard libraries (i.e amqmdnetstd.dll & amqmxmsstd.dll),so that it is easy to migrate the existing .NET Core applications to .NET6.
The existing .NET Framework applications using amqmdnetstd.dll & amqmxmsstd.dll have to be recompiled with amqmdnet.dll/IBM.XMS.dll, because the IBM MQ .NET Standard libraries built using .NET Standard are deprecated and will be removed in future releases of IBM MQ.
Existing IBM MQ .NET Stack

Following are the different set of IBM MQ .NET client libraries that are shipped with IBM MQ v9.3.1:
- Libraries for .NET Framework :The libraries amqmdnet.dll & IBM.XMS.dll are built using .NET Framework as target framework, hence these libraries can be used to develop only .NET Framework applications. These libraries are shipped with IBM MQ Client installation and with the IBM MQ Client redistributable package.
- Libraries for .NET 6:
A new set of libraries are shipped with IBM MQ v9.3.1 which are for .NET 6 applications.These libraries can be used to develop .NET Core(renamed to .NET by MS) applications for Windows or Linux platforms. The location of these libraries in the IBM MQ Client installation package are &MQ_INSTALL_PATH&/bin on Windows & and &MQ_INSTALL_PATH&/lib64 on Linux.
Any existing .NET Core(.NET)applications which are built using pre-IBM MQ v9.3.1 will continue to work with the new set of libraries without the need of recompiling the application. But the existing .NET Framework applications which are built using the .NET Standard libraries(amqmdnetstd.dll/amqmxmsstd.dll) will fail with a FileNotFound exception. If a .NET Framework application is compiled using amqmdnetstd.dll/amqmxmsstd.dll from a version lower than IBM MQ v9.3.1 and the same application is run using the .NET 6 based MQ Client libraries, then the following “FileLoadException” type of exception will be thrown by .NET
Exception caught: System.IO.FileLoadException: Could not load file or assembly 'amqmdnetstd, Version=x.x.x.x,
Culture=neutral,
PublicKeyToken=23d6cb914eeaac0e' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference.
(Exception from HRESULT: 0x80131040)
File name: 'amqmdnetstd, Version=x.x.x.x, Culture=neutral, PublicKeyToken=23d6cb914eeaac0e'
To resolve the above error, the libraries present in“&MQ_INSTALL_PATH&/bin/netstandard2.0” must be copied to the directory from where the .NET Framework application is running.
The nuget package will now contain libraries built using .NET Standard2.0 and .NET 6 as target framework. The libraries for .NET Standard2.0 will be available under “netstandard2.0” folder and libraries for .NET 6 will be available under “net6.0” folder.
The amqmdnetstd.dll & amqmxmsstd.dll are available at the following locations
Library built using .NET Standard2.0 as target framework
- Libraries built using .NET Standard 2.0 as the target framework:Until IBM MQ v9.3.0, libraries amqmdnetstd.dll & amqmxmsstd.dll are built using .NET Standard 2.0 as target framework. Since these libraries are built using .NET Standard 2.0 as target framework, these can be used to develop both .NET Framework and .NET Core (now renamed to .NET) applications. These libraries were available as part of IBM MQ Client installation, IBM MQ Client redistributable package and as Nuget packages.
Changes from IBM MQ v9.3.1:
From IBM MQ v9.3.1, these libraries are moved to a new location within the IBM MQ Client installation, these libraries will be available in the following location:
a. Windows: &MQ_INSTALL_PATH&/bin/netstandard2.0
b. Linux: &MQ_INSTALL_PATH&/lib64/netstandard2.0
These libraries will be deprecated, and IBM intends to remove them in future releases. These libraries are available as part of IBM MQ Client installation,IBM MQ Client redistributable package and as Nuget packages.
Applications which continue to use these libraries will receive a warning CS0618 during compile.
Eg: warning CS0618: 'MQQueueManager' is obsolete: 'Use .NET6 based MQ Client libraries'.
If a .NET Framework application is compiled using amqmdnetstd.dll/amqmxmsstd.dll from a version lower than IBM MQ v9.3.1 and the same application is run using IBM MQ v9.3.1 then then the following “FileLoadException” type of exception will be thrown by the .NET
Exception caught: System.IO.FileLoadException: Could not load file or assembly 'amqmdnetstd, Version=x.x.x.x, Culture=neutral, PublicKeyToken=23d6cb914eeaac0e' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
File name: 'amqmdnetstd, Version=x.x.x.x, Culture=neutral, PublicKeyToken=23d6cb914eeaac0e'
To resolve the error, libraries from &MQ_INSTALL_PATH&/bin/netstandard2.0 have to be copied to the application run directory or the scripts have to be updated with the new path of MQ .NET Standard libraries.
The nuget package will now contain libraries built using .NET Standard2.0 and .NET 6 as target framework. The libraries for .NET Standard2.0 will be available under “netstandard2.0” folder and libraries for .NET 6 will be available under “net6.0” folder.
The amqmdxmsstd.dll & amqmdnetstd.dll libraries are available at the following locations when IBM MQ is installed:
- Library built using .NET Standard2.0 as target framework
- On Windows: &MQ_INSTALL_PATH&/bin/netstandard2.0
- On Linux:&MQ_INSTALL_PATH&/lib64/netstandard2.0
- Library built using .NET 6.0 as target framework
- On Windows: &MQ_INSTALL_PATH&/bin
- On Linux: &MQ_INSTALL_PATH&/lib64.