System.MissingMethodException: Method not found:
'System.Collections.Generic.List`1<!!0>
BusinessEntities.Helper.Sort(System.Func`2<!!0,!!0>)'
我在網站的某個頁面上看到此錯誤。使用visual studio web部署項目準備網站構建。當我在IIS中部署構建並運行該頁面時,出現上述錯誤。當網站在Visual Studio中以調試模式運行時,它執行得很好。獲取System.MissingMethodException,用於對通用列表進行排序的擴展方法
背景: 我有一個asp.net 4.0網站,它引用了BusinessEntities項目,這是一個.NET 3.5類庫項目。該項目包含一個公共靜態Helper類,該類具有擴展方法Sort,用於對通用對象列表進行排序。 Helper類位於BusinessEntities名稱空間中。
如果我將BusinessEntites項目的版本更改爲.Net 4.0,然後構建網站,則不會出現此錯誤。由於某些操作限制,該項目無法升級到4.0。
所有這些奇怪的是,通用的擴展方法和網站和項目結構已經在解決方案,因爲一年以上沒有任何問題。我無法理解爲什麼這個錯誤突然出現。
該網站擁有對BusinessEntities項目的項目引用。我檢查了BusinessEntities.dll的日期時間戳,並且它與項目的當前時間戳相匹配。我甚至嘗試將項目構建中的最新dll替換爲網站構建。仍然沒有工作。在構建中沒有其他同名的dll。如果我從頁面註釋掉排序方法,它的工作沒有問題。這意味着BusinessEntites項目中的其他類可以在構建中訪問。另外,我想知道爲什麼,當我將項目目標框架更改爲4.0時,不會出現此問題。 – drj
您是否嘗試刪除所有引用,dll並重新編譯?任何機會,DLL可能在GAC中? –
是的,已嘗試刪除,清理解決方案和重建。我沒有將項目dll添加到GAC。但是在GAC中檢查,只是爲了確保它不在那裏。甚至嘗試刪除臨時的asp.net文件。 – drj