将SSDT项目从Visual Studio 2012迁移到2017,CDC源未打开。

7
我们将包从Visual Studio 2012迁移到了2017。在SSIS工具箱中没有cdc源组件。

enter image description here

而且CDC源组件看起来像:

enter image description here

同时也无法打开。

如果我创建一个新的 Visual Studio 2017 项目,它会在 SSIS 工具箱中包含 cdc 源组件:

enter image description here

我可以处理它:

enter image description here


如果您可以发布升级操作结果(升级后显示的HTML页面)的屏幕截图,我可以更清楚地解释问题。 - Hadi
我认为这是Microsoft Connect上的活跃线程。它还没有被修复。 - Yahfoufi
@dangalg,你能提供升级报告吗? - Yahfoufi
1
请按照@Hadi的建议操作 - “创建一个包含相同配置的CDC源的ssis 2017包,然后使用文本编辑器打开两个dtsx文件(新包和升级包),比较CDC Source的XML语法”。我想补充一点 - 在此处���布两个XML片段。也许可以通过修改XML文档来手动修复此问题。 - Ferdipux
2个回答

5

我稍微研究了一下这个问题,发现有些人通过将包的目标版本从2012更改为2016成功地迁移了包。请查看此博客文章以查看其操作过程。


这是正确答案,只需要按照博文所示更改目标版本。谢谢!!! - dangalg
这里有一个问题。当我们这样做后,我们后来发现任务脚本变为空了。 - dangalg

2

一些可以帮助你找到正确方向的建议

首先,发布升级结果是很好的,这样可以更清晰地解决问题。升级操作并不总是100%有效,我在升级软件包后面临了许多问题,这在许多情况下导致需要从头开始创建软件包。

(1) 比较两个软件包的XML

.dtsx文件是用XML编写的

我可以建议的一件事是,创建一个包含相同配置的CDC Source的ssis 2017软件包,并使用文本编辑器打开两个dtsx文件(新软件包和升级后的软件包),比较CDC Source的XML语法,这可能会导致问题的原因。

(2) 比较两个软件包的属性

比较PackageFormatVersion、VersionBuild和其他属性可能会导致问题

还可以尝试比较两个软件包的版本信息,因此从PackageFormatVersion(如果它在两个软件包之间相同,则表示它们都针对SQL Server 2012,因此您需要在解决方案属性中更改目标版本)和其他字段中可以获取是否存在任何差异或者可以引导您找到问题的原因。

在以下问题的答案中了解有关获取软件包信息的更多信息:从.dtsx文件自动检索版本号

还可以在此Microsoft文章 - 集成服务项目和解决方案中的版本定位部分中了解更多关于更改目标版本的内容


如果以上建议失败

如果以上建议都没有引导您找到问题的原因,我没有找到确切的原因。但是我发现一些链接显示在升级SQL Server或在具有不同SQL Server版本的机器上进行部署时会出现一些问题-我不能断言这是100%正确的-但我认为有许多涉及CDC的问题未被微软修复。

您可以从以下链接中查看示例:


1
非常详细的回答,但是在尝试了您提供的每个链接之后,我的问题仍然没有得到解决。 - dangalg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接