将 SSIS 包从 BIDS 2005 升级到 SSDT 2015,尝试 运行 它给出 "cannot access property IsExternal" 错误

Upgraded SSIS package from BIDS 2005 to SSDT 2015, trying to run it gives "cannot access property IsExternal" error

升级顺利完成,项目构建正确,所有连接测试正确等。但是,在启动包(由多个传输 SQL 服务器对象任务组成)后,前两个成功,第三个失败:

[Transfer SQL Server Objects Task] Error: Execution failed with the following error: "Cannot access property IsExternal.This property is not available on SQL Server 2008 R2.".

有没有办法得到更详细的错误,如果没有别的?事实上,我什至不知道它试图在哪里找到这个 属性。

使用 SSDT 开发的软件包将无法在 SQL Server 2008 R2 或之前的任何服务器上运行。对于 SQL Server 2008 R2 和之前使用的 BIDS。我知道这很痛苦,但至少与 BIDS(如果你有现代服务器)相比,SSDT 现在很容易获得(包含在 VS 2013+ 中)。

Microsoft 数据工具在一定程度上是向后兼容的。 Visual Studio 2015 仅支持 SQL 2012/2014/2016。您可以使用项目配置属性调整目标 SQL 服务器版本。 Screenshot here

将 SSIS/Visual Studio 所针对的 SQL 服务器版本切换为与您的 SQL 服务器相同的版本可能会解决此问题。它对我有用!

更改目标 SQL Visual Studio 中的服务器版本:

  1. 在解决方案资源管理器中右键单击您的 SSIS 项目,然后select 属性
  2. 在“属性”对话框的左侧菜单中,select 配置属性 -> 常规
  3. 将 "TargetServerVersion" 更改为与您的 SQL 服务器相同的版本

我在 Visual Studio 2015 上使用 运行 SSIS,针对服务器 运行 SQL Server 2014。SSIS 看起来最初是针对 SQL Server 2017 ,并因与 OP 相同的错误而失败。我将 Visual Studio 切换到目标 SQL Server 2014,然后任务 运行 成功。