我只是想分享我学到的东西。这里有很多关于TypeLoadExceptions的帖子,但是似乎没有一个我需要的答案。
该页面上有一些特别好的信息,但似乎并没有特别说明我所看到的内容以及如何解决它(可能是错误的):
TypeLoadException says 'no implementation', but it is implemented
对我而言,解决方案很简单:删除Visual Studio 2010缓存中的所有文件,并将其用于生成程序集文件。
问题的背景:
这里有一些更多细节。我看到像这样的TypeLoadException:
我确实有一个实现...我想,直到我查看了ILDASM的程序集。我发现我正在将旧版本的DLLs写入接口(interface)已经过时的ouput文件夹中。我的输出文件夹不是默认设置,而是项目文件夹外部的相对路径(也许VS无法完全处理?)。在对项目进行清理/重建之后,项目的“obj”文件夹是我的项目文件夹的所有子文件夹中唯一在DLL上具有正确日期戳的文件夹。由于某些原因,“bin”文件夹仍然具有旧版本。我想这就是要复制到输出文件夹的内容。
在此之前,我尝试过:
...没有成功。
我不确定为什么VS没有将“obj”中的正确程序集复制到输出文件夹...引用了过期程序集的项目是正确的。
最佳答案
您是否正在使用某种源代码管理并进行检入和 check out 工作?如果是,请确保没有将obj和bin文件夹检入到源代码管理中。如果要从源代码管理中删除它们,请检入所有内容,然后重新构建解决方案。
关于c# - TypeLoadException的解决方案,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8527966/