We got a couple of custom SSIS components which were created targeting SSIS for SQL Server 2014.
We are now migrating our dtsx packages to SSIS for SQL Server 2016.
I have modified the custom SSIS components such that assembly references to DTS assemblies have been given the property SpecificVersion=False
.
I'm using the DTS.Runtime.Application.Upgrade
method to upgrade my packages in a console app. However the packages which have these custom components are throwing the below error.
What else should I be doing?
Error in DFT (SSIS.Pipeline) The "" failed to cache the component metadata object and returned error code 0x80131600.
Error in DFT (SSIS.Pipeline) Component , clsid {4F885D04-B578-47B7-94A0-DE9C7DA25EE2} failed to initialize due to error 0xC0047067 "The "%1" failed to cache the component metadata object and returned error code 0x%2!8.8X!.".
Error in DFT ( [2]) The component is missing, not registered, not upgradeable, or missing required interfaces. The contact information for this component is "".
Error in DFT (SSIS.Pipeline) The component metadata for "" could not be upgraded to the newer version of the component. The PerformUpgrade method failed.
Error in Package.dtsx The loading of the package has failed.
You get to rebuild the component against the 2016 SSIS binaries, redeploy it to the GAC and probably change the references in your packages to use the new components (unless the 2014->2016 migration process is entirely different than 2005->2008 and 2008->2012 which is when I stopped building custom components).
The reason for this is that the DLLs for SSIS are strongly signed/versioned and that signature changes between editions of the project so the 2014 component you built is against the 130 version of TxPipeline dll and it now needs to reference 140 to be successful.
User contributions licensed under CC BY-SA 3.0