我在SQL Server 2016中有一个sis软件包,它使用的是我在gac中添加的自定义dll。 SSIS包在Visual Studio中可以正常工作,但是当我在SQL Server上部署它时,它找不到dll frm gac。
有人可以帮我在哪里放置该自定义dll吗?
我在任务脚本中添加了异常处理,并将日志保存在文本文件中,
System.IO.FileNotFoundException:无法加载文件或程序集'abc,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'或其依赖项之一。系统找不到指定的文件。
文件名:“ abc,版本= 1.0.0.0,文化=中性,PublicKeyToken =空”
在ST_7a052dcdad9e4fe18bb49852 ****。Job.runTask()
在ST_7a052dcdad9e4fe18bb49852 ****。ScriptMain.Main()WRN:程序集绑定日志记录已关闭。
要启用程序集绑定失败日志记录,请将注册表值[HKLM \ Software \ Microsoft \ Fusion!EnableLog](DWORD)设置为1。注意:与程序集绑定失败日志记录有一些性能上的损失。要关闭此功能,请删除注册表值[HKLM \ Software \ Microsoft \ Fusion!EnableLog]。
答案 0 :(得分:0)
有两种可能的原因:
32/64位冲突::确保运行的模式与dll版本相关。尝试在SQL作业中以32位模式运行程序包:
将注册的dll复制到SQL程序集路径:%ProgramFiles%\Microsoft SQL Server\<SQL Version>\SDK\Assemblies
,然后将其注册到GAC。还要确保这是包中引用的路径
解决方法
使用AssemblyResolve函数: