我稍微研究了一下这个问题,发现有些人通过将包的目标版本从2012更改为2016成功地迁移了包。请查看此博客文章以查看其操作过程。
首先,发布升级结果是很好的,这样可以更清晰地解决问题。升级操作并不总是100%有效,我在升级软件包后面临了许多问题,这在许多情况下导致需要从头开始创建软件包。
.dtsx文件是用XML编写的
我可以建议的一件事是,创建一个包含相同配置的CDC Source的ssis 2017软件包,并使用文本编辑器打开两个dtsx文件(新软件包和升级后的软件包),比较CDC Source
的XML语法,这可能会导致问题的原因。
比较PackageFormatVersion、VersionBuild和其他属性可能会导致问题
还可以尝试比较两个软件包的版本信息,因此从PackageFormatVersion
(如果它在两个软件包之间相同,则表示它们都针对SQL Server 2012,因此您需要在解决方案属性中更改目标版本)和其他字段中可以获取是否存在任何差异或者可以引导您找到问题的原因。
在以下问题的答案中了解有关获取软件包信息的更多信息:从.dtsx文件自动检索版本号
还可以在此Microsoft文章 - 集成服务项目和解决方案中的版本定位部分中了解更多关于更改目标版本的内容
如果以上建议都没有引导您找到问题的原因,我没有找到确切的原因。但是我发现一些链接显示在升级SQL Server或在具有不同SQL Server版本的机器上进行部署时会出现一些问题-我不能断言这是100%正确的-但我认为有许多涉及CDC的问题未被微软修复。
您可以从以下链接中查看示例:
CDC Source
的XML语法”。我想补充一点 - 在此处���布两个XML片段。也许可以通过修改XML文档来手动修复此问题。 - Ferdipux