gpt4 book ai didi

c# - TypeLoadException的解决方法

转载 作者:太空狗 更新时间:2023-10-29 17:58:34 25 4
gpt4 key购买 nike

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

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

TypeLoadException says 'no implementation', but it is implemented

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


问题背景:

这里有更多的细节。我看到了类似 TypeLoadException 的内容:

Unhandled Exception: System.TypeLoadException: Method [method name] in type [type name] from assembly [assembly name], Version=x.x.x.x, Culture=neutral, PublicKeyToken=null does not have an implementation.

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

在此之前我尝试过:

  • 清理/重建
  • 重新启动 Visual Studio (2010)
  • 重新启动
  • 删除输出文件夹 (bin\x86\debug) 中的程序集 DLL

...没有成功。

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

最佳答案

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

关于c# - TypeLoadException的解决方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8527966/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com