c# Mono:试图使用DLL引用时出现typeeloadeexception

本文关键字:引用 typeeloadeexception DLL Mono | 更新日期: 2023-09-27 18:18:59

我是Mono/新手。. NET所以我不太确定我是否添加了正确的参考。我正试图实现Fleck WebSockets。我下载了源代码,在MonoDevelop中打开了解决方案,并构建了它。我取了结果"Fleck.dll"answers"Fleck.dll"。Mdb",并将它们放在我的项目文件夹中。然后,在MonoDevelop中,我进入我的解决方案中的参考编辑器,并选择Fleck.dll作为。net Assembly引用。

它似乎工作正常,MonoDevelop发现该程序集中的一切。如果我输入"Fleck.",那么自动补全就会弹出该DLL的所有成员,但如果我编写一些代码试图使用它,我就会得到一个typeloadeexception。它编译并运行,但立即抛出该异常。

我使用的代码从一个例子,我发现,所以我不认为这是一个问题。以下是我的完整异常输出:

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 

我做错了什么?

c# Mono:试图使用DLL引用时出现typeeloadeexception

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

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

所以我打赌它应该工作得很好。你的Mono版本是什么?

哦,我还明确地将所有提到的项目的框架版本设置为4.0(这对于正确编译是必不可少的)。