2

C#で記述された.NETアプリケーションをLinuxに移植しようとしています。
MoMaツールを使用した互換性テストでは、アプリケーションに互換性があることが示されています。Visual Studio 2010を使用してコードをコンパイルし、結果の.exeファイルをUbuntu VM(10.04 LTSを実行)にコピーしました。

私はbadgerportソース(http://badgerports.org/lucid.htmlから)でmonoをインストールしました。/ 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が見えます。
そして、mono-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 

何が起こっているのか、そしてそれを修正するために私ができることについての洞察はありますか?残念ながら、他の開発上の制約のため、Ubuntu10.04の使用に制限されています。

4

1 に答える 1

3

少なくとも設計上では、Monoコンパイラを使用してコンパイルする必要はありませ。で実行してみてくださいMONO_LOG_LEVEL="debug" mono your_software.exe。アセンブリやその他の、おそらく有用な情報を見つけようとする試みが表示されます。そしてここに置いてください;)

于 2012-08-28T09:44:25.690 に答える