目前,我有一个.NET应用程序正在执行2008R2 SSIS包,应用程序正在win server 2008r2(64bit)上运行。这些软件包是在BIDS 2008中构建的。之后,我将数据库服务器从SQL2008R2升级到SQL2014 Standard(在Win服务器2012R2上运行),并将.NET应用程序部署到新环境。
现在,我遇到了从.NET应用程序调用包的问题。消息错误是错误:无法加载文件或程序集“Microsoft.SqlServer.Dts.DTSRuntimeWrap.dll,Version = 10.0.0.0,Culture = neutral,Public Key = ...”或其中一个依赖项。试图以不正确的格式加载程序。
步骤1:创建一个.NET简单应用程序来调用包(SSIS 2008)。我还添加了2.dll版本(10.0.0.0)作为参考 在C:\ Program Files(x86)\ Microsoft SQL Server \ 100 \ SDK \ Assemblies
中分配的Microsoft.SQLServer.DTSRuntimeWrap和Microsoft.SQLServer.ManagedDTSusing 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:\ Program Files(x86)\ Microsoft SQL Server \ 120 \ SDK \ Assemblies中分配。我想每当程序包执行时,它还需要旧的.dll版本10.0.0.0的一些函数来执行它们的组件(执行SQL任务,任务脚本,...)但这些.dll在新环境中不存在而且它导致错误。
那么,除了将SSIS包升级到2014或任何建议之外,我该如何解决这个问题呢?
非常感谢,
答案 0 :(得分:0)
您的2008R2软件包需要升级到2014年,因为您升级了服务器,而不是并行安装。所以我可以想到两种可能性: