2

我正在使用 7.5.0.0 amqmdnet.dll 并使用 MQ.NET 类构建我的 .net 应用程序,但是在部署后,如果目标机器安装了 7.1.0.0 MQ 客户端,应用程序会抛出找不到程序集 7.5.0.0 dll 信息,IBM的MQ客户端版本不向后兼容客户端吗?

System.IO.FileNotFoundException:无法加载文件或程序集'amqmdnet,版本 = 7.5.0.0,文化 = 中性,或其依赖项之一。该系统找不到指定的文件。

我在官方页面上找不到任何与此相关的信息。

IBM 7.5 链接

这是否需要始终是目标计算机中的构建版本?我假设如果我使用 7.1 dll,它也适用于 7.1 更高版本。当我引用 7.1.0.0 时,我在项目文件中得到了这个。

<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>

为什么它有 7.5.0.0?有什么想法(尽管我引用的版本是 7.1.0.0)?

4

1 回答 1

5

向后兼容性“问题”不仅限于 MQ,还涉及所有 .NET 程序集。不支持使用一个版本的 .NET 程序集编译应用程序并使用该 .NET 程序集的较低版本运行它,不仅是 MQ,而且是每个 .NET 程序集。您必须使用与构建应用程序相同的程序集版本。如果您有该程序集的更高版本,那么您将需要策略文件来重定向 .NET CLR 以加载该 .NET 程序集的更高版本。

于 2013-04-18T04:28:41.310 回答