如何在SQL服务器2014标准环境中运行2008R2 SSIS包?(How to run 2008R

2019-10-20 21:22发布

在目前,我正在执行2008R2 SSIS包.NET应用程序和应用程序是赢服务器2008R2(64位)上运行。 这些包是建于2008年BIDS之后,我从我的SQL2008R2数据库服务器升级到SQL2014标准和部署.NET应用程序到新的环境(温服务器2012R2上运行)。

一个现在,我从.NET应用程序中调用包遇到的问题。 消息错误是错误:无法加载文件或程序集“Microsoft.SqlServer.Dts.DTSRuntimeWrap.dll,版本= 10.0.0.0,文化=中立,公钥= ...”或者它的一个依赖关系。 试图加载程序格式不正确。

第1步:创建一个.NET简单的应用程序调用包(SSIS 2008)。 \程序文件(x86)\ Microsoft SQL Server的\ 100 \ SDK \组件:我也是在C分配基准Microsoft.SQLServer.DTSRuntimeWrap和Microsoft.SQLServer.ManagedDTS加2 .dll文件版本(10.0.0.0)

using Microsoft.SqlServer.Dts.Runtime;

using Application = Microsoft.SqlServer.Dts.Runtime.Application;


private void button1_Click(object sender, EventArgs e)
{

try
{

string pkgLocation = @".\Package.dtsx";

Application app = new Application();

Package pkg = app.LoadPackage(pkgLocation, null);

DTSExecResult pkgResults = pkg.Execute();

MessageBox.Show(pkgResults.ToString());

}
catch(Exception ex)
{
MessageBox.Show("ERROR: " + ex.Message);
}
}

步骤2:部署该应用(其中包括2 .DLL,包)到新环境并执行它。 其结果是作为上述错误信息。

在新的环境中,2 .dll文件版本12.0.2000.8用C分配:\程序文件(x86)\ Microsoft SQL Server的\ 120个\ SDK \组件。 我猜,每当包执行的时候也需要旧的.dll版本10.0.0.0一些功能来执行他们的组件(执行SQL任务,任务脚本,...),但这些.dll不在新的环境中存在,它导致错误。

所以,我怎么能解决这个问题,除了升级SSIS包年至2014年或有什么建议?

非常感谢,

Answer 1:

你2008R2包需要,因为你做了服务器的升级,而不是并排侧安装升级至2014年。 因此,有,我能想到的两种可能性:

  1. 升级所有的包年至2014年,这可能是在SSDT-BI 2014开起来,并保存为简单的(而不是在项目的模式,但作为独立的包)。 这是值得怀疑的任何代码会从R2至2014年被打破,出现了而不是根本性的改变了许多增强功能。
  2. 或者你的服务器上重新安装SSIS 2008R2,有你的.NET应用程序从正确的文件夹叫DTEXEC。 即我的机器上它是在C:\ Program Files文件\ Microsoft SQL Server的\ 100 \ DTS \ BINN \ DTExec.exe。 您还可以更改路径变量,以确保2008年DTEXEC是在2014年的顶部。


文章来源: How to run 2008R2 SSIS packages on SQL Server 2014 Standard environment?