使用MQ-Websphere调试应用程序的问题:amqmdnet.dll由于版本冲突

时间:2013-04-19 16:53:39

标签: .net websphere assemblies .net-assembly ibm-mq

我有一个引用IBM-WebSphereMQ dll“amqmdnet.dll”的应用程序。 我正在尝试在本地调试这个控制台应用程序,我从OP团队获得了64位dll。运行该服务的服务器是32位。 尝试调试时,我收到以下错误。

  

无法加载文件或程序集'amqmdnet,Version = 1.0.0.3,   Culture = neutral,PublicKeyToken = dd3cb1c9aae9ec97'或其中一个   依赖。定位程序集的清单定义没有   匹配程序集引用。 (HRESULT异常:0x80131040)

dll给我的版本是7.1.0.0。我在解决方案中添加了对7.1.0.0版本的引用 我不确定它对1.0.0.3版本的期望是什么?我尝试将以下内容添加到我的App.Config:

<runtime>
    <assemblyBinding>
      <dependentAssembly>
        <assemblyIdentity name="amqmdnet" publicKeyToken="dd3cb1c9aae9ec97"/>
        <bindingRedirect oldVersion="1.0.0.3" newVersion="7.1.0.0"/>
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

但是,没有效果。它仍然给了我同样的例外。 以下是“探测”期间生成的“Fusionlog”:

=== Pre-bind state information ===
LOG: User = xxxx\ccc
LOG: DisplayName = amqmdnet, Version=1.0.0.3, Culture=neutral, PublicKeyToken=dd3cb1c9aae9ec97
 (Fully-specified)
LOG: Appbase = file:///C:/xxx/vvv/MouserMQ/services/MMQMonitor/dev/Kk/MMQconfigChange/MMQWatchDogConsole/bin/Debug/
LOG: Initial PrivatePath = NULL
Calling assembly : MMQTools, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\NewCodeBase\mm\MouserMQ\services\MMQMonitor\dev\kk\MMQconfigChange\MMQWatchDogConsole\bin\Debug\MMQWatchDogConsole.vshost.exe.Config
LOG: Using host configuration file: 
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config.
LOG: Post-policy reference: amqmdnet, Version=1.0.0.3, Culture=neutral, PublicKeyToken=dd3cb1c9aae9ec97
LOG: Attempting download of new URL file:///C:/nb/Mouser/MouserMQ/services/MMQMonitor/dev/kk/MMQconfigChange/MMQWatchDogConsole/bin/Debug/amqmdnet.DLL.
WRN: Comparing the assembly name resulted in the mismatch: Major Version
ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated.

还有什么我想念的吗?我删除并重新添加了对我在解决方案中出现的dll的引用。

有人可以帮我吗?我真的很感激任何帮助:)

1 个答案:

答案 0 :(得分:3)

您似乎尚未安装完整的MQ客户端。看起来你刚刚复制了一两个dll。您的应用程序使用amqmdnet.dll版本1.0.0.3进行编译,这意味着它来自MQ Client版本7.0.1,而您收到的amqmdnet.dll版本来自MQ Client版本7.1。我想因为这个你遇到了这个问题。

要解决此问题,我将安装完整的MQ Client版本v7.1。这将安装策略文件,这些文件将重定向使用MQv701编译的应用程序以加载MQv7.1程序集。