簡體   English   中英

從第三方應用程序調用類庫時缺少MissingMethodException

[英]MissingMethodException when calling to a class library from third-party application

從第三方應用程序使用腳本OnBase調用公司庫中的方法時,出現MissingMethodException(引用特定方法)。 調用該方法的對象已經存在,並且在此之前可以成功進行其他調用。

我已經確認的事情:

  • 該庫中的其他引用正常工作
  • 方法是公開的
  • 有問題的腳本引用的DLL版本具有該方法(重建程序集並重新導入它,輸出將當前日期顯示為創建日期,而OnBase顯示正確的更新版本號)
  • GAC中沒有DLL的任何版本
  • 自導入以來,服務器應用程序已重新啟動

還要注意的是,腳本編輯器在OnBase中的代碼完成也無法找到該方法,但它也可以成功構建。

  • 我應該在哪里尋找舊的DLL?
  • 是否有OnBase的特定位置?
  • 還有什么其他原因?

為了清楚起見,程序集1被腳本引用,並且包含丟失的方法,而程序集2和腳本都引用了程序集2。 程序集2在所有情況下均有效,而程序集1在該情況下除外。

發生這種情況的原因是程序集1和腳本引用了程序集2的不同版本,因此當我們嘗試將程序集2中定義的對象傳遞給程序集1中的方法時,它來自的版本沒有匹配,因此缺少的是具有特定簽名的方法,即存在DoStuff(v1.Foo)但沒有DoStuff(v2.Foo)。 顯然,該錯誤僅表明缺少DoStuff(Foo)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM