Csharp/C#教程:TypeLoadException的解决方案分享


TypeLoadException的解决方案

我只是想分享一些我学到的东西。 这里有很多关于TypeLoadExceptions的post,但是它们似乎都没有我需要的答案。

这个页面有一些特别好的信息,但似乎没有具体解决我所看到的以及我如何解决它(可能是错误的):

TypeLoadException表示“没有实现”,但它已实现

解决方案对我来说很简单:删除Visual Studio 2010缓存的任何文件并用于生成程序集文件。


问题背景:

这里有一些更多的细节。 我看到一个TypeLoadException,如:

未处理的exception:System.TypeLoadException:类型[类型名称]中的方法[方法名称]来自程序集[程序集名称],Version = xxxx,Culture = neutral,PublicKeyToken = null没有实现。

我确实有一个实现……我想,直到我用ILDASM查看程序集。 我发现我正在将旧版本的DLL写入我的ouput文件夹,该文件夹已经过时了。 我的输出文件夹不是默认设置,而是项目文件夹之外的相对路径(也许VS无法完全处理这个问题)。 在对项目执行清理/重建之后,项目的“obj”文件夹是我的项目文件夹的所有子文件夹中唯一具有DLL上正确日期戳的文件夹。 由于某种原因,“bin”文件夹仍然有旧版本。 而且我想这就是被复制到输出文件夹的内容。

在此之前我尝试过:

……没有成功

我不确定为什么VS没有将“obj”中的正确程序集复制到输出文件夹…引用过时程序集的项目是正确的

您是否正在使用某种源代码控制并进行检入和检查? 如果是,请确保未将obj和bin文件夹签入源控件。 如果他们从源代码管理中删除它们,请检查所有内容,然后重新构建解决方案。

我在Visual Studio 2015中遇到过这种问题,并通过使用NuGet包管理器解决了这个问题,重新安装了以某种方式安装在不同版本中的软件包。

上述就是C#学习教程:TypeLoadException的解决方案分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/983290.html

(0)
上一篇 2021年12月19日
下一篇 2021年12月19日

精彩推荐