Search code examples
sql-serverssiscustom-pipeline-component

Cause of SSIS Custom Dataflow Component Error - Cannot be upgraded


I have a very simple component which trims all leading and trailing spaces from (read/write) strings in a pipeline. As far as I can see, I only have one binary of this dll on my development machine. I am transferring it to another development machine and registering it in the GAC, but when I open a package I copied to the second machine, I get this warning:

Error 1 Validation error. Data Flow Task: DTS.Pipeline: The component metadata for "component "TrimColumnsComponent" (1909)" could not be upgraded to the newer version of the component. The PerformUpgrade method failed. LD_CXSUM.dtsx 0 0

I have the component in the toolbox, and I can drag another one onto the dataflow canvas and it doesn't appear to have any problem.

This is SQL Server 2005 and Visual Studio 2005 on both machines.

On the second machine, I can create a package from scratch and it will load on the machine that built the component (but the icon is the standard user component icon, the same as it was on the second machine). If I create a package from scratch on the build machine, it has the correct icon, but it gives the upgrade message on the non-build machine. The files are identical in the components directory, they have the same component class id and they are registered in the GAC.

I have checked the dtsx files manually by inspecting the XML and in packages created on the build machine and the non-build machine, the class id and public key are identical between machines.

What can cause this?


Solution

  • Generally this means that the component was upgraded after the package was saved, and so it's at the wrong version number. You'll have to re-add the component, unfortunately 1.

    You may be able to save the package as a new version and try migrating that. This may solve the problem of the automatic upgrade being called (and subsequently failing).