【发布时间】:2017-08-22 09:35:49
【问题描述】:
我在内部开发了 SSIS 组件并尝试将其移植到 SSIS 2016。我遇到的问题是该组件显示在 SSIS 工具箱中,但是一旦我尝试通过双击打开组件 UI,我得到异常“找不到方法”带有方法签名(我的程序集中的方法)。组件 UI 类中引发异常。
环境:
- VS 2015
- SSDT 17.2
- 为 SQL 2016 配置的 SSIS 项目
- 为 32 位和 64 位框架定制的 machine.config 从版本 10 到 13 的程序集绑定 SQL Server 程序集(请参阅 下面是这背后的原因)
VS 解决方案概述(旧版):
- 为组件、UI 类、表单(组件 UI)和 表单背后的逻辑
- .NET 版本的组件和 UI 项目是 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 模块窗口显示一切都存在。
有人知道如何克服这种情况吗?
提前致谢。
【问题讨论】:
标签: c# .net visual-studio ssis sql-server-data-tools