(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:
- Changing interface names from 90 to 100 (IDTSxxxx90 becomes IDTSxxxx100)
- Updating the versions of our managed components (typically 220.127.116.11 to 10.0.0.0)
- Generating new GUIDs for our COM components
- 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)
Managed components will need to update their references to SSIS assemblies to point to the Katmai versions.
All versions should now be 10.0.0.0.
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:
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).
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”).