Question

I have an App that references the IBM-WebSphereMQ dll "amqmdnet.dll". I'm trying to debug this Console Application locally, for which I got the 64 bit dll from our OP's team.The server that the service is running on is 32 bit. When trying to debug through, I get the following error.

Could not load file or assembly 'amqmdnet, Version=1.0.0.3, Culture=neutral, PublicKeyToken=dd3cb1c9aae9ec97' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

The version of the dll givem to me was 7.1.0.0. I have added references in the solution to the version 7.1.0.0 I'm not sure where it is expecting the 1.0.0.3 version from? I tried adding the following to my App.Config:

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

but, to no effect. It still gives me the same exception. Here is the "Fusionlog" generated during the 'probing' time:

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

Is there something else I'm missing? I deleted and re-added the references to the dll wherever it appears in my solution.

Can someone help me with this? I'd really appreciate any help :)

Was it helpful?

Solution

It appears that you have not installed the complete MQ Client. Looks like you just copied one or two dlls. Your application is compiled with amqmdnet.dll version 1.0.0.3 which means the it is from MQ Client version 7.0.1 whereas the version of amqmdnet.dll you received is from MQ Client version 7.1. I think because of this you are running into this issue.

To resolve this issue, I would install the complete MQ Client version v7.1. This will install policy files also which will redirect an application compiled with MQv701 to load MQv7.1 assemblies.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top