使用来自badgerports的Mono包,在运行时获取异常

时间:2012-08-27 14:25:17

标签: c# ubuntu mono

我正在尝试将用C#编写的.NET应用程序移植到linux中 使用MoMa工具的兼容性测试表明该应用程序是兼容的。 我使用Visual Studio 2010编译代码,并将生成的.exe文件复制到我的Ubuntu VM(运行10.04 LTS)。

我安装了带有badgerport源的单声道(来自http://badgerports.org/lucid.html)。我看到/ usr / lib / mono目录中有4.0库:

user@ubuntu:~$ ls -l /usr/lib/mono
total 52
drwxr-xr-x   3 root root  4096 2012-08-27 07:15 2.0
drwxr-xr-x   3 root root  4096 2012-08-27 07:15 3.5
drwxr-xr-x   3 root root 12288 2012-08-27 07:15 4.0
drwxr-xr-x   2 root root  4096 2012-08-27 07:14 compat-2.0
drwxr-xr-x 145 root root 12288 2012-08-27 07:15 gac
drwxr-xr-x   3 root root  4096 2012-08-27 07:15 mono-configuration-crypto
drwxr-xr-x   2 root root  4096 2012-08-27 07:15 monodoc
drwxr-xr-x   3 root root  4096 2012-08-27 07:15 xbuild
drwxr-xr-x   3 root root  4096 2012-08-27 07:15 xbuild-frameworks

当我查看单声道的手册页时,我看到顶部单声道2.5 单声道-V返回以下内容。

user@ubuntu:~$ mono -V
Mono JIT compiler version 2.10.8.1 (Debian 2.10.8.1-1~dhx1~lucid1)
Copyright (C) 2002-2011 Novell, Inc, Xamarin, Inc and Contributors. www.mono-project.com
TLS:           __thread
SIGSEGV:       altstack
Notifications: epoll
Architecture:  x86
Disabled:      none
Misc:          softdebug 
LLVM:          supported, not enabled.
GC:            Included Boehm (with typed GC and Parallel Mark)

这是我尝试运行应用程序时的输出。

user@ubuntu:~$ mono MyApplication.exe 

Unhandled Exception: System.TypeLoadException: A type load exception has occurred.
at MyApplication.ConsoleRunner..ctor () [0x00000] in <filename unknown>:0 
at MyApplication.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0 
[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeLoadException: A type load exception has occurred.
at MyApplication.ConsoleRunner..ctor () [0x00000] in <filename unknown>:0 
at MyApplication.Program.Main (System.String[] args) [0x00000] in <filename unknown>:0 

有关正在发生的事情的任何见解,以及我可以采取哪些措施来解决这个问题?不幸的是,由于其他开发限制,我仅限于使用Ubuntu 10.04。

1 个答案:

答案 0 :(得分:3)

你肯定必须使用Mono编译器进行编译,至少不是设计。尝试使用MONO_LOG_LEVEL="debug" mono your_software.exe运行,您将看到尝试查找汇编和其他可能有用的信息。把它放在这里;)