c# - SSIS 脚本任务找不到对程序集的引用

标签 c# dll ssis npoi

我有一个 SSIS 程序包,它使用脚本任务用来自各种不同文件类型(包括 excel)的数据填充数据表。

我正在使用 NPOI 从 Excel 中读取数据,并将 NPOI.dll 文件放在与 SSIS 包相同的文件夹中,并将其作为引用添加到脚本任务中。在 NPOI 方面,我是菜鸟,所以我目前只是在修补,但即便如此,我还是跌入了第一道障碍!

我的脚本包含以下代码(我从 this SA answer 复制):

using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;

HSSFWorkbook wb;
using (FileStream file = new FileStream(FilePath, FileMode.Open, FileAccess.Read))
{
    wb = new HSSFWorkbook(file);
}

但失败并显示以下错误消息:无法加载文件或程序集“NPOI,Version=2.1.1.0,Culture=neutral,PublicKeyToken=0df73ec7942b34e1”或其依赖项之一。系统找不到指定的文件

但是当我进入脚本任务时,引用在那里并且没有错误。

enter image description here

如果我注释掉除第一行之外的所有内容,我声明一个名为 wbHSSFWorkBook 它运行正常。

我是否错误地添加了引用,或者添加对 SSIS 脚本任务的引用非常困难?

一如既往,我们非常感谢您的帮助。

最佳答案

要在脚本任务中引用和执行自定义程序集,您必须将它们添加到 GAC。这是 an article with workflow .
替代方法 - provide your own AssemblyResolver在脚本任务代码中。

关于c# - SSIS 脚本任务找不到对程序集的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37681631/

相关文章:

c# - 后台任务自发完成C#

c# - OpenPop.NET - 修改电子邮件中的字符

c# - 如何在基于 WCF 的场景中管理 EF 4.2 关联

c# - 如何在不同的编程语言中使用 C# 方法

.net - 将 VC++ 静态库包装在 DLL 中以与 .Net 托管程序集一起使用

ssis - SSIS 中的复杂平面文件

c# - 调用线程无法访问此对象,因为另一个线程拥有它 - WPF

c# - 在 C++ 代码中使用 C# dll

SSIS 数据源数据类型

excel - 未找到数据源名称,未指定默认驱动程序”。获取连接失败 "DestinationConnectionOLEDB"