我一直在使用SSIS for VS 2017大约一个月没有麻烦.
突然,当我尝试创建一个新的SSIS项目时,会出现以下错误对话框:
无法加载文件或程序集"Microsoft.DataTransformationServices.Wizards"或其依赖项之一.该系统找不到指定的文件.
我试图卸载SSIS包并重新安装VS 2017但仍然出现错误.你能帮帮我吗?
我正在通过Biml创建一个SSIS项目(使用Vimgence BimlExpress页面的当前版本的BimlExpress ),该项目使用数据流任务中的脚本组件.创建项目时没有问题,但是当它到达脚本组件时会出现错误:
无法加载文件或程序集'Microsoft.SqlServer.DTSPipelineWrap,Version = 14.100.0.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91'或其依赖项之一.该系统找不到指定的文件.
在Script.Sain.PreExecute()at Microsoft.SqlServer.Dts.Pipeline.ScriptComponentHost.PreExecute()
我可以在GAC中看到这个dll,当我尝试手动添加引用时,SSIS声明我无法添加它,因为它已经包含在项目中.
但是,如果我打开脚本组件并手动操作Build- 但不做其他更改 - 数据流任务将毫无问题地运行.
为了澄清,我知道我没有改变任何其他因为我每次想要测试一种新方法时都会从Biml重新创建这个项目,这提供了一致的基线.
有谁知道为什么包含对GAC dll的引用的脚本组件只能在手动Built但不是事先工作?
虽然在不同的环境中,我之前使用过这个确切的Biml没有问题.使用Visual Studio 2012对抗SQL Server 2016实例但在Visual Studio 2015(针对2012)中不针对SQL Server 2016实例.
对于进一步的上下文,我还测试了这个输出针对SQL Server 2012,2014和2016的SSIS项目以及完全相同的错误消息.
这似乎肯定是项目中的dll版本问题,作为BimlExpress的输出,因为如果我v4.0_14.100.0.0__89845dcd8080cc91在C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.SqlServer.DTSPipelineWrap脚本组件中手动创建带有版本13 dll 的文件夹,现在错误输出如下:
System.InvalidCastException:无法将类型为"System .__ ComObject"的COM对象强制转换为接口类型"Microsoft.SqlServer.Dts.Pipeline.Wrapper.IDTSComponentMetaData100".此操作失败,因为由于以下错误,对IID'{ ID in removed in case }' 的接口的COM组件的QueryInterface调用失败:不支持此类接口(HRESULT异常:0x80004002(E_NOINTERFACE)).
在Microsoft.SqlServer.Dts.Pipeline.ScriptComponentHost.HandleUserException(例外e)
在Microsoft.SqlServer.Dts.Pipeline.ScriptComponentHost.PreExecute()
在Microsoft.SqlServer.Dts.Pipeline.ManagedComponentHost.HostPreExecute(IDTSManagedComponentWrapper100包装器)