Creating a Setup Package for a Custom SSIS Data Flow Component

To make an installation package for a custom SSIS component the .dll(s) that make up the component must be installed into two places:

  1. For design time it needs to be installed in the SQL Server's pipeline components folder C:\Program Files\Microsoft SQL Server\90\DTS\PipelineComponents
  2. For runtime it needs to be installed in the GAC

All your setup package has to do is install the .dll(s) into both of these places and you are ready to rock n' roll. This micro-howto doesn't cover aspects of the GAC (like signing code) or developing an SSIS component, for those topics I would recommend www.sqlis.com. Read on for notes on creating an installation package.

SQL Server's Pipeline Components Folder

To install an item into the special folders you need to be looking at the File System view on the setup project. If you are not already there, right click on the setup project and select View > File System. Once you are at the file system view right click on File System on Target Machine and select Add Special Folder > Custom Folder. Name the new folder something sensible and set the DefaultLocation property to C:\Program Files\Microsoft SQL Server\90\DTS\PipelineComponents. Now right click on the folder and select Add > Project Output... then select the project that contains the SSIS component. You will probably see a whole bunch of detected dependencies that you don't need to install. For each dependency that isn't needed go to the property page and set Exclude to True.

The GAC

The GAC is a special folder that windows uses to control assemblies and all the different versions of them. To add the .dll(s) into the GAC go back to the File System view, right click on File System on Target Machine and select Add Special Folder > Global Assembly Cache Folder. Now right click on the Global Assembly Cache folder and add the output for the project that contains the SSIS component.

Conclusion

This should install the assembly into both the GAC and the SSIS Pipeline Components folder. Go forth and code!



Post new comment

The content of this field is kept private and will not be shown publicly.