【问题标题】:IBM MQ client backward compatibilityIBM MQ 客户端向后兼容性
【发布时间】:2014-11-12 22:18:18
【问题描述】:

我正在使用 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 link

是否需要始终是目标计算机中的构建版本?我假设如果我使用 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)?

【问题讨论】:

    标签: c# .net ibm-mq


    【解决方案1】:

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

    【讨论】:

    • 非常感谢Shashi,但是我的问题是,如果我有一个winform应用程序引用(amqmdnet.dll-7.1 MQ客户端),当有人在他们的目标系统上安装这个应用程序时,如果他们有7.5 MQ客户端安装好了,应该没问题吧?
    • 只要应用程序是“自包含的”,并且它们所依赖的 DLL 在应用程序文件夹中,一切都应该没问题。当您开始将它们放入 GAC 时,事情就会变得“棘手”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-14
    • 2016-11-08
    • 2022-11-08
    • 1970-01-01
    • 2020-05-14
    • 2020-12-22
    • 1970-01-01
    相关资源
    最近更新 更多