简体   繁体   中英

IBM MQ client backward compatibility

I am using 7.5.0.0 amqmdnet.dll and building my .net app using MQ.NET classes, however after deployment, if the target machine has 7.1.0.0 MQ client installed, the app throws can't find assembly 7.5.0.0 dll information, is IBM's MQ client version not backward client compatible?

System.IO.FileNotFoundException: Could not load file or assembly 'amqmdnet, Version=7.5.0.0, Culture=neutral, or one of its dependencies. The system cannot find the file specified.

I can't find any information related to this at the official page.

IBM 7.5 link

Does that need to be always the build version in the target computer? I assume if i use 7.1 dll, it will work with 7.1 greater versions too. When i referenced 7.1.0.0, i get this in the project file.

<Reference Include="amqmdnet, Version=7.5.0.0, Culture=neutral,  processorArchitecture=MSIL">

<SpecificVersion>False</SpecificVersion> 
 <HintPath>..\..\..\..\..\..\..\..\IBM\7.1.0.0\amqmdnet.dll</HintPath>
 </Reference>

Why is it having 7.5.0.0? any idea (although the version i have referenced is 7.1.0.0)?

The backward compatibility "issue" is not just limited to MQ, it's with all .NET assemblies. Compiling an application with one version of a .NET assembly and running it with a lower version of that .NET assembly is not supported, not just MQ but every .NET assembly. You have to use the same version of the assembly that the application was built with. If you have higher version of that assembly then you would require policy files to redirect the .NET CLR to load the higher version of that .NET assembly.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM