Deploying a DLL to the Global Assembly Cache

Peter Schmitz

Staff member
If you are going to be using third-party (or your own) DLLs from inside SSIS, you will have to ensure the DLL is registered on your target server(s). This article is meant to describe how to do this.

First, find the DLL you need. For the sake of this article, let's assume we have grabbed a copy of the RabbitMQClient dll. The dll will be placed in c:\temp on the server we want to install it on.

Connect to the server by means of an RDP or MSTSC session, and click the start button. Browse to your installation of Visual Studio, and find the folder called "Visual Studio Tools". In there, you should be able to find the Developer Command Prompt. Right-click on that, and select to run it as an administrator.

It is possible this folder is empty on your machine, and thus the Developer Command Prompt is not available. With a bit of luck, the path to gcautil is added to your Environment Path, meaning you can simply type gcautil in the prompt window, and receive something other than a message that the file cannot be found.

If you're not so lucky, the error you receive could be:

'gacutil' is not recognized as an internal or external command, operable program, or batch file

This means you will have to figure out where the Global Assembly Cache util (gcautil.exe) is located on your system, and start a regular command prompt as an administrator. You will then have to supply the path to gcautil for the next step.

Once you have a prompt opened, type the following command to register the dll to the Global Assembly Cache:

gacutil /i c:\Temp\RabbitMQ.Client.dll

Hopefully you will see a message that the registration worked:

Assembly successfully added to the cache


To verify the DLL was registered, you can issue the following command:

Gacutil /l RabbitMQ.Client

This should show you output confirming the DLL exists: