自定义SSIS组件 - 找不到方法

时间:2017-08-22 09:35:50

标签: c# .net visual-studio ssis sql-server-data-tools

我已经在内部开发了SSIS组件并尝试将其移植到SSIS 2016.我遇到的问题是组件显示在SSIS工具箱中,但是一旦我尝试通过双击打开组件UI,我就会得到异常"方法找不到"使用方法签名(来自我的程序集的方法)。组件UI类中引发异常。

环境:

  • VS 2015
  • SSDT 17.2
  • 为SQL 2016配置的SSIS项目
  • 为32位和64位框架定制的machine.config 程序集绑定SQL Server程序集从版本10到13(请参阅 以下是因为这个原因)

VS解决方案概述(旧版):

  • 为组件,UI类,表单(组件UI)和单独的C#项目 形式背后的逻辑
  • 用于组件和UI项目的.NET版本是4.0,用于表单和 逻辑项目3.5
  • 组件和UI类的C#项目中的引用使用SQL Server dll版本13,其他使用版本10(SQL Server 2008) - 从2008年到2012年移植时已成功使用此方法

已经检查过:

  • UITypeName很好
  • 在调试组件时,它显示带有"缺少的组件" 方法已经加载,它是一个很好的(VS - 调试 - 窗口 - 模块)
  • 确认"失踪"方法存在使用中间窗口(视觉检查 方法签名,声明类型和各个模块类型 装载自)
  • csproj文件中的EmbedInteropTypes对于引用设置为true(与false相同)
  • 从控制台应用程序成功打开包,找到自定义组件 实例并打开了它的UI。

因为在调用"缺少"时会引发异常。位于我的程序集中的方法我唯一可以想象的是它无法找到我的dll或不识别类型(在SSIS程序集中定义)。然而,反射和VS模块窗口显示一切都存在。

有没有人知道如何克服这种情况?

提前致谢。

2 个答案:

答案 0 :(得分:1)

我发布了我的回答,也许有人会发现它很有用。

似乎VS 2015和/或SSDT 17.2存在问题。尝试修复,卸载和安装软件和ID没有帮助。卸载SSSDT 17.2并为VS 2015安装SSDT 16.5有所帮助。在此之后,我的SSIS组件的完全相同的部署过程,以及完全相同的组件版本工作正常。因此,我唯一可以确定为更改的是SSDT的版本。

不幸的是,我不知道这种行为的特殊原因,我没有时间投资找出答案。希望这也有助于某人。

答案 1 :(得分:-1)