We are upversioning from SQL 2012 with a BIML-generated package containing a script component. We're receiving an error that I am able to reproduce in a fresh project without BIML.
The error is:
Failed validation and returned error code 0xC0048021.
The component is missing, not registered, not upgradeable, or missing required interfaces. The contact information for this component is "Includes and runs custom script code. For example, apply a business rule that limits the range of valid values in an "income" column or add values in two columns and calculate the average of the sum.;Microsoft Corporation; Microsoft SQL Server; Microsoft Corporation; All Rights Reserved; http://www.microsoft.com/sql/support;9".
The component metadata for "Parse PatientContacts, clsid {4F885D04-B578-47B7-94A0-DE9C7DA25EE2}" could not be upgraded to the newer version of the component. The PerformUpgrade method failed.
Microsoft.SqlServer.Dts.Pipeline.ComponentVersionMismatchException: The version of Parse PatientContacts is not compatible with this version of the DataFlow. [[The version or pipeline version or both for the specified component is higher than the current version. This package was probably created on a new version of DTS or the component than is installed on the current PC.]] at Microsoft.SqlServer.Dts.Pipeline.ManagedComponentHost.HostCheckAndPerformUpgrade(IDTSManagedComponentWrapper100 wrapper, Int32 lPipelineVersion)
To ensure it wasn't the BIML or VS2012, I can reproduce this error using VS2015 by:
- Created a new project in Visual Studio 2015
- Configured the TargetServerVersion to be SQL Server 2016
- Created a data flow with a Script Component between my Data Source and -Destination
- Saved and built the project. Picked up the .ispac file from the bin folder
- Deployed the Project on my SQL Server 2016 instance using SSMS 17
- Executed the package configuring the Environment to the correct values.
Any help would be greatly appreciated.