RabbitMQ SSIS Component error: Could not load file or assembly ‘RabbitMQ.Client'

Peter Schmitz

Administrator
Staff member
After installing the RabbitMQ source components for SSIS, I created a test package to see if I could actually get any data returned. However, when running the package, I was greeted with the following error:

System.IO.FileNotFoundException: Could not load file or assembly ‘RabbitMQ.Client, Version=3.1.1.0, Culture=neutral, PublicKeyToken=89e7d7c5feba84ce’ or one of its dependencies. The system cannot find the file specified.
File name: ‘RabbitMQ.Client, Version=3.1.1.0, Culture=neutral, PublicKeyToken=89e7d7c5feba84ce’
at SSISRabbitMQ.RabbitMQSource.RabbitMQSource.AcquireConnections(Object transaction)
at Microsoft.SqlServer.Dts.Pipeline.ManagedComponentHost.HostAcquireConnections(IDTSManagedComponentWrapper100 wrapper, Object transaction)

Error at Data Flow Task [SSIS.Pipeline]: RabbitMQ Source failed validation and returned error code 0x80070002.

Error at Data Flow Task [SSIS.Pipeline]: One or more component failed validation.

Error at Data Flow Task: There were errors during task validation.

(Microsoft.DataTransformationServices.VsIntegration)

This is because the RabbitMQ client dll that the connection manager is using has not been registered to the Global Assembly Cahce (GAC). To do this, you will need to fire up the Developer Command Prompt for Visual Studio. On my machine, this was found in the installation folder for Visual Studio 2013 -> Visual Studio Tools.

Make sure you run it as Administrator, or registering the DLL will fail.

Once you're there, locate the path where the RabbitMQ client dll is located, and change the directory to that folder (In my case, this was the folder in which the Data Source component was created and built; i.e. C:\users\<username>\Documents\SSISRabbitMQ-master\SSISRabbitMQ-master\packages\RabbitMQ.Client.3.1.1\lib\net30). Then registering the DLL for use is as simple as issuing the following command:

Code:
gacutil -iF RabbitMQ.Client.dll

If all goes well, you should see something like the followng message indicating the dll has now been added:

Microsoft (R) .NET Global Assembly Cache Utility. Version 4.0.30319.33440
Copyright (c) Microsoft Corporation. All rights reserved.

Assembly successfully added to the cache

Once that is done, you now ought to be able to run the package with the RabbitMQ connection manager.
 
Top