Katmai - Custom components and upgrade
Published Mar 25 2019 01:56 PM 257 Views
Copper Contributor
First published on MSDN on Jun 05, 2007

(Note, when I use the word "components" in this post, I'm referring to all extensible items, including tasks, pipeline components, foreach enumerators, loggers and connections)


The first major change I worked on as part of the SSIS team was re-versioning our components for Katmai. This included:



  1. Changing interface names from 90 to 100 (IDTSxxxx90 becomes IDTSxxxx100)
  2. Updating the versions of our managed components (typically 9.0.242.0 to 10.0.0.0)
  3. Generating new GUIDs for our COM components
  4. Incrementing version numbers of the COM ProgIds

These changes were painful, but necessary for the new version and to support side by side scenarios where you have both SQL Server 2005 and Katmai installed.


Because the current SSIS package format uses strong assembly names, GUIDs and ProgIds to reference most of the components, SQL Server 2005 packages will need to be upgraded in Katmai. Currently we take care of the upgrade behind the scenes by doing a name mapping lookup on-the-fly when you run or load a package, but in a future CTP we will have our full upgrade solution in place.


The solution in the current CTP will work for packages which use the stock components that ship with SSIS, but running packages which contain custom or third party components will require some manual steps. These components will need to be recompiled with the new interfaces and assemblies before they can be used in Katmai.


I should note that we're currently working hard to ensure that in the future, upgrading components and packages will be as painless as possible. I'll be able to talk about the plans once they appear in a CTP.


Here are the steps you'll need to do to get your custom component working in Katmai. (Note, all of this information is also in the Katmai CTP readme)


Assembly references

Managed components will need to update their references to SSIS assemblies to point to the Katmai versions.


Microsoft.SqlServer.Dts.Design
Microsoft.SqlServer.DTSPipelineWrap
Microsoft.SqlServer.DTSRuntimeWrap
Microsoft.SqlServer.ManagedDTS
Microsoft.SqlServer.PipelineHost


All versions should now be 10.0.0.0.

Rename interfaces

All IDTSxxxx90 interfaces have been renamed to IDTSxxxx100, and will need to be changed before you can recompile. You can use the following regular expression in visual studio's Find/Replace dialog to do this:


FIND: {[:b(,.<_]}{IDTS[A-Za-z_#]+}90{[:b\[\*>,.);]}
REPL: \1\2100\3


Versioning

If you're changing the version of your component (if you want it to supporting running side by side, for example), you'll have to manually edit (or recreate) your packages to use the new assembly version/guid/progid. (Note, this process will be improved in an upcoming CTP).


Deploy

Rebuild you component. Note that your files should now go under one of the subdirectories under "%ProgramFiles%/Microsoft SQL Server/100/DTS" (instead of "%ProgramFiles%/Microsoft SQL Server/ 90 /DTS").

Version history
Last update:
‎Mar 25 2019 01:57 PM
Updated by: