【问题标题】:C# Mono: TypeLoadException when trying to use a DLL referenceC# Mono:尝试使用 DLL 引用时出现 TypeLoadException
【发布时间】:2011-12-29 20:48:56
【问题描述】:

我是 Mono/.NET 的新手,所以我不太确定我是否添加了我的参考权利。我正在尝试实现Fleck WebSockets。我下载了源代码,在 MonoDevelop 中打开了解决方案,然后构建了它。我将生成的“Fleck.dll”和“Fleck.dll.mdb”放在我的项目文件夹中。然后,在 MonoDevelop 中,我转到解决方案中的引用编辑器并选择 Fleck.dll 作为 .NET 程序集引用。

它似乎工作正常,MonoDevelop 可以找到该程序集中的所有内容。如果我输入“Fleck”。然后自动完成会弹出该 DLL 的所有成员,但是如果我编写一些代码尝试使用它,我会得到一个 TypeLoadException。它编译并运行,但立即抛出异常。

我使用的是我找到的示例中的代码,所以我认为这不是问题。这是我的完整异常输出:

Could not load signature of Fleck.SocketWrapper:Accept due to: 
Could not load signature of Fleck.ISocket:Accept due to: 

Unhandled Exception: System.TypeLoadException: Could not load type 'Fleck.SocketWrapper' from assembly 'Fleck, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'.
at Fleck.WebSocketServer..ctor (System.String location) [0x00000] in <filename unknown>:0 
at TestServer.MainClass.Main (System.String[] args) [0x00000] in /home/danny/Projects/TestServer/Main.cs:10 
[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeLoadException: Could not load type 'Fleck.SocketWrapper' from assembly 'Fleck, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'.
at Fleck.WebSocketServer..ctor (System.String location) [0x00000] in <filename unknown>:0 
at TestServer.MainClass.Main (System.String[] args) [0x00000] in /home/danny/Projects/TestServer/Main.cs:10 

我做错了什么?

【问题讨论】:

  • 你把它编译成什么? 32 位、64 位或任何 CPU?
  • 它只为我提供了 CPU 架构的 x86 选项(尽管我使用的是 64 位 CPU)我刚刚意识到我已经在调试模式下编译了 Fleck。我将它切换到发布模式并替换了现有的 DLL,但我仍然得到完全相同的异常。
  • Fleck 和我的测试项目都只提供 Release/Debug x86 选项

标签: c# linux mono monodevelop


【解决方案1】:

它对我来说很好用。我在 Ubuntu 上使用 Mono 2.10.8。我所做的是:

  1. 从您指定的存储库中克隆 Fleck。
  2. 运行 Nuget 以下载测试所需的包(实际上没有必要,因为它们已经在存储库中)。
  3. 已编译 Fleck,其测试和测试控制台应用程序包含在解决方案中。
  4. 应用程序运行成功。
  5. NUnit 报告所有测试也成功运行。

所以我打赌它应该可以正常工作。你的 Mono 是什么版本的?

哦,我还明确将所有提到的项目的框架版本设置为 4.0(这对于正确编译至关重要)。

【讨论】:

  • 啊哈,这似乎是问题所在。 MonoDevelop 显然默认使用框架版本 3.5。我将它切换到 4.0,它似乎可以工作,谢谢。
猜你喜欢
  • 2011-06-27
  • 2021-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-03
  • 1970-01-01
  • 2020-01-04
相关资源
最近更新 更多