SSIS - Getting the RabbitMQ components to work for SQL Server 2014

Peter Schmitz

Staff member
We are trying to use the RabbitMQ components from GitHub. While attempting to do so, we ran into a few issues, so I figured I'd write a quick guide on what we did to get this to work.

First, we downloaded the zip file, and unpacked it on my development server. Once it was unzipped, we opened the solutioni n Visual Studio. Our target server is SQL Server 2014, and the version of Visual Studio the package was opened in is Visual Studio 2013 (which is the same version we build our SSIS packages in).

I started off by trying to get the Connection Manager to work. Initially, there were some warnings/errors thrown regarding the target architecture.

To solve these, in Solution Explorer, ensure you selected the Solution, and then click on "Build" -> "Configuration Manager" -> "Platform" -> "New".

Select x86 for all projects involved, even if you are running on an x64 environment. This is because Visual Studio still is a 32-bit application, and the components will not show up unless you build them for x86. (Trust me, I found out the hard way and struggled for 45 minutes to figure out why things weren't working).

When attempting to then build the project would fail. The error message was

Error 1 The command ""C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\gacutil.exe" -u SSISRabbitMQ.RabbitMQConnectionManager
"C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\gacutil.exe" -iF SSISRabbitMQ.RabbitMQConnectionManager.dll
copy SSISRabbitMQ.RabbitMQConnectionManager.dll "C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Connections\SSISRabbitMQ.RabbitMQConnectionManager.dll" /y

copy "C:\Users\k-kapacity-ps\Documents\SSISRabbitMQ-master\SSISRabbitMQ-master\SSISRabbitMQ.RabbitMQConnectionManager\bin\x64\Debug\RabbitMQ.Client.dll" "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies" /y
copy "C:\Users\k-kapacity-ps\Documents\SSISRabbitMQ-master\SSISRabbitMQ-master\SSISRabbitMQ.RabbitMQConnectionManager\bin\x64\Debug\RabbitMQ.Client.dll" "C:\Program Files\Microsoft SQL Server\110\DTS\Binn" /y" exited with code 1. SSISRabbitMQ.RabbitMQConnectionManager

If you look closely, you will notice it refers to SQL Server 110 in the path. However, SQL Server 2014 is version 12 (120). The solution is to change the pointers to the "DTS\Binn" folder in the 120 folder. You can also do this in the Configuration Manager (but this time highlight the project in Solution Explorer):

"Build" -> "Configuration Manager" -> "Build Events" -> "Edit Post-build..."

Edit the command line statement there to the following:

"C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\gacutil.exe" -u $(TargetName)
"C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\gacutil.exe" -iF $(TargetFileName)
copy $(TargetFileName) "C:\Program Files (x86)\Microsoft SQL Server\120\DTS\Connections\SSISRabbitMQ.RabbitMQConnectionManager.dll" /y

copy "$(TargetDir)RabbitMQ.Client.dll" "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies" /y
copy "$(TargetDir)RabbitMQ.Client.dll" "C:\Program Files\Microsoft SQL Server\120\DTS\Binn" /y

This allowed me to build the solution. After that, we were able to open a new SSIS project and saw the RabbitMQ connector:


Repeat step 1 (adding the tagret platform) but this time, for x64, and then rebuild the whole solution.