如何将 SSIS 包 VS2012、DataTools 2014 部署到 SQL Server 2012

How to deploy SSIS Package VS2012, DataTools 2014 to a SQL Server 2012

我有带有最新数据工具的 VS2012。我们几乎所有 SQL 服务器都是 2014 年的,部署包工作正常。

现在我们有一台服务器由于外部供应商的原因必须保留在 2012 年。当我部署我的包并尝试 运行 时,我收到版本号更高的错误...

我发现了很多关于他们如何解决它的案例,但即使在我的机器上安装 SSIS 2012,尝试使用 2012 年的部署程序进行部署也没有任何效果。

2012 版本的 ISDeplymentWizard 导致 xml 读取错误。

有人对我如何部署有建议吗?

如何判断此包的 SSIS 版本?

识别 SSIS 包版本的唯一准确方法是打开它并找到 PackageFormatVersion 值。

PackageFormatVersion

  • 1? = 2005
  • 3 = 2008
  • 6 = 2012
  • 8 = 2014

你们当中的聪明人可能会说 "I can use the SSIS libraries themselves to inspect that value." 当您这样做时,您将了解到您可以打开的每个 SSIS 包都将与您的 SSIS 库具有相同的版本。这是因为软件包 向前兼容

2005 软件包将 运行 安装在 2014 上。打开包,在内存中升级到当前版本,[执行],然后丢弃修改。因此,如果您要求库报告该值,则该操作不会发生在磁盘上的包上。相反,它将是 in-memory/temporarily 升级版本。 从来没有咬过我的屁股

有一个将 2008 包移动到 2005 的 codeplex 项目。没有人尝试对任何其他版本的 SSIS 包(据我所知)做同样的事情。

更改数字不会神奇地将 2014 年降级为 2012 年。如果我必须使用 SSIS 包支持 2012 年和 2014 年的环境,我会将所有内容构建为 2012 年。部署到 2014 年时它们会升级服务器。

如果我必须在该组合中支持 2008/2005,我可能会使用 Biml to describe my SSIS packages and then use the free add-in BIDS Helper 之类的东西来发出我的包。我用 VS 2008 打开 Biml,然后出现一个 2008 版本的包。同样的Biml,在VS 2014中打开发出一个2014版本的包。