运行 来自 WinForms 应用程序的 SSIS 包 - 粗糙错误

Running SSIS Package from WinForms app - Gnarly Error

我有一个 winforms 应用程序,它使用 Microsoft.SqlServer.ManagedDTS 来加载和执行 SSIS 包。当 运行 在本地调试和安装时,包运行正常,当安装在开发服务器上时,包运行正常。当部署到实时服务器上时,出现以下错误。

我 运行 不知道要检查什么,我不想放弃使用这种执行我的程序包的方法,因为这会给应用程序增加了我们真正不需要的进一步复杂性。不想介绍。有什么想法吗?

为了清楚起见,我检查了:

报错的源码摘录如下:

var app = new Microsoft.SqlServer.Dts.Runtime.Application();
var pkg = app.LoadPackage(strSSISPath, null);
pkg.ImportConfigurationFile(strSSISConfig);

var result = pkg.Execute();

if (result.Equals(DTSExecResult.Success))
{
    string strMsg = strMHType + " extract completed successfully.";
    MessageBox.Show(strMsg, strMHType, MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{                         
    foreach (var err in pkgMHMDS.Errors)
    {
        MessageBox.Show(err.Description, strMHType, MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
    MessageBox.Show(strMHType + @" extract failed!", strMHType, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
pkgMHMDS.Dispose();

我们看到的错误(COM class 错误)是因为目标机器上没有安装Microsoft.SqlServer.ManagedDTS dll 的版本。虽然我们确实将 dll 安装到 GAC 中,但我们无法解决该错误,因为 Integration Services 是一个服务器组件,无法重新分发到客户端计算机。该错误信息量不大,但本质上它试图说的是它正在尝试加载一个程序集,该程序集的地址存储在安装客户端工具 SDK 时创建的注册表项中。