我正在通过Biml(使用每个Varigence BimlExpress page使用BimlExpress的当前版本)创建一个SSIS项目,该项目在Data Flow Task中使用了脚本组件。创建该项目时不会出现问题,但是进入脚本组件时会出现错误:
我可以在GAC中看到此dll,并且当我尝试手动添加引用时,SSIS指出我无法添加它,因为它已包含在项目中。
但是,如果我打开脚本组件并手动对其进行Build
编码-但未进行任何其他更改-数据流任务将顺利通过。
需要澄清的是,每次我要测试一种提供一致基线的新方法时,我都会从Biml重新创建该项目,因此我知道我没有做任何其他更改。
有谁知道为什么包含GAC dll引用的脚本组件仅在手动Built
时有效,而在事前不起作用?
尽管在不同的环境中,我之前都使用过这个确切的Biml,但没有出现问题。针对SQL Server 2016实例使用Visual Studio 2012工作,但针对SQL Server 2016实例在Visual Studio 2015(目标2012)中没有使用。
对于进一步的上下文,我还测试了针对输出SQL Server 2012、2014和2016的SSIS项目的输出,并带有完全相同的错误消息。
更新
从BimlExpress的输出来看,这显然是项目中的一个dll版本问题,因为如果我手动在v4.0_14.100.0.0__89845dcd8080cc91
中创建内部版本为13 dll的C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.SqlServer.DTSPipelineWrap
文件夹,脚本组件现在会出现以下错误:
最佳答案
我想您的问题可能与Express版本有关。
请在相关页面上查看Express版本和BimlStudio版本之间的区别(“比较BimlStudio”按钮下的功能比较表):
https://www.varigence.com/BimlExpress
关于c# - 手动打开之前,SSIS脚本组件无法加载程序集,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45239315/