我只是想分享我學到的東西。這裏有很多關於TypeLoadExceptions的帖子,但是他們沒有一個似乎有我需要的答案。TypeLoadException的解決方案
這個頁面有一些特別好的信息,但似乎並沒有專門解決我所看到的,我怎麼解決它(可能是錯誤的):
TypeLoadException says 'no implementation', but it is implemented
爲我解很簡單:刪除Visual Studio 2010緩存並用於生成彙編文件的任何文件。
背景的問題:
這裏有一些更多的細節。我看到一個TypeLoadException像:
未處理的異常:System.TypeLoadException:方法從組件[組件名] [方法名]在 類型[類型名稱],版本= XXXX, 文化=中性公鑰= null沒有實現。
我確實有一個實現......我想,直到我看着與ILDASM大會。我發現我正在將老版本的DLL寫入到我的輸出文件夾中,這些老版本的界面已經過時。我的輸出文件夾不是默認設置,而是項目文件夾外的相對路徑(也許VS無法完全處理?)。在對項目進行清理/重建之後,項目的「obj」文件夾是我的項目文件夾中的所有子文件夾中唯一具有DLL上的正確日期戳記的文件夾。由於某種原因,「bin」文件夾仍舊有舊版本。我想這就是複製到輸出文件夾的內容。
在此之前我曾嘗試:
- 清潔/重建
- 重新啓動的Visual Studio(2010)
- 重啓
- 刪除我的集DLL輸出文件夾(BIN \ 86 \調試)
...沒有成功。
我不知道爲什麼VS沒有將「obj」中正確的程序集複製到輸出文件夾中......引用過時程序集的項目是正確的。
不要在問題中發佈解決方案。只要發佈問題,就好像您仍然遇到問題,然後將解決方案作爲答案發布。最好等一天左右 - 讓人們有時間發佈自己的解決方案,你可能會發現自己比自己的更好。 – ChrisF 2011-12-15 23:19:48