【发布时间】: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