从第三方应用程序

时间:2018-02-02 17:01:09

标签: c# exception dll

在使用脚本OnBase从第三方应用程序调用公司库中的方法时,我收到了MissingMethodException(引用特定方法)。调用该方法的对象已存在,并在此之前成功执行其他调用。

我已经证实的事情:

  • 此库中的其他引用正常工作
  • 方法是公开的
  • 相关脚本引用的DLL版本具有方法(重建程序集并重新导入它,输出显示当前日期为创建日期,OnBase显示正确的更新版本号)
  • GAC中没有DLL版本
  • 自导入
  • 后已重新启动服务器应用程序

另外值得注意的是,OnBase中的脚本编辑器代码完成也找不到该方法,但它也可以成功构建。

  • 我应该寻找旧DLL的更常见的位置是什么?
  • 是否有任何OnBase特定位置?
  • 还有其他原因吗?

1 个答案:

答案 0 :(得分:1)

  

为了澄清,程序集1由脚本引用并包含缺少的方法,程序集2由程序集1和脚本引用。装配2适用于所有情况,装配1工作除了这一方法。

发生这种情况的原因是程序集1和脚本引用了程序集2的不同版本,因此当我们尝试将程序集2中定义的对象传递给程序集1中的方法时,它来自一个版本没有匹配,所以缺少的是具有该特定签名的方法,即DoStuff(v1.Foo)存在但DoStuff(v2.Foo)没有。显然,错误只表明DoStuff(Foo)丢失了。