1

我有一个引用 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 的引用,因为它出现在我的解决方案中。

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

4

1 回答 1

3

看来您还没有安装完整的 MQ 客户端。看起来你只是复制了一两个 dll。您的应用程序使用 amqmdnet.dll 版本 1.0.0.3 编译,这意味着它来自 MQ 客户端版本 7.0.1,而您收到的 amqmdnet.dll 版本来自 MQ 客户端版本 7.1。我认为因此您遇到了这个问题。

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

于 2013-04-20T14:26:18.447 回答