While working with an SSIS package that uses a custom component (in this case the RegexClean transformation from Konesans) that was upgraded from SSIS 2008 to SSIS 2012, I ran into this error trying to delete it from the designer when I realized I couldn’t work with it:
“SSIS Designer does not allow this component to be deleted.
The task editor did not clean up properly after the task was removed:”
Even though I had the 2012 version of the component installed, I also noticed that the component had the generic icon instead of the custom icon. It seems that this component did not upgrade successfully when the package was upgraded from 2008 to 2012.
Here are a few things you can try if you run into this issue.
If you find out early enough (i.e. right after upgrading): undo the upgrade (you are using source control, right?), make sure both the old and new component versions are installed and retry the upgrade. This is not guaranteed to work, but it’s worth a try.
If you find out late: edit the package XML and update the component’s Class ID (ideally, that wouldn’t have changed if the component developer did their job right) and version number to match the new version number. If you’re unsure about the new version number, simply create a new package, drop the component in place and examine the new package’s XML. This technique requires that the property names and possible values etc. are the same between the old and the new version.
This is the method I was able to use. I had to replace numerous version numbers, including those for references to Type Converters and UI Type Editors. When replacing the version numbers, be sure to also check the PublicKeyToken attribute’s value to make sure it still matches. Again, if the component developer did their job, it shouldn’t change between versions.
If you replaced everything correctly, the next time you open the package in the designer, you should see the component’s actual icon and you should be able to use any custom editors.
If the properties don’t match, then you should manually remove all traces of that component from the package XML. This unfortunately can be tedious if you have new columns that are introduced by a data flow task. If you remove the component’s XML, then any new columns that component added are gone. The designer won’t load until all references to those columns are removed.