0

私はC#で問題なく動作する小さなアプリを作成しました。ターゲットフレームワークは.NET4です。

linux --monoでアプリを実行すると、アプリは問題なく起動します。

しかし、私はモノラルでのスレッド化に問題があるようです。

以下のコード:

 try
                {
                    Thread oThread = new Thread(new ParameterizedThreadStart(this.SendSms));
                    oThread.IsBackground = true;
                    oThread.Start(_data);

                    while (!oThread.IsAlive)
                    {
                        Console.WriteLine("Sleeping...");
                        Thread.Sleep(1);
                    }

                }
                catch (TypeLoadException tlex)
                {
                    Console.WriteLine("TypeLoadException: " + tlex.Message);

                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }

SendSmsメソッドに到達していないようですが、代わりに次のエラーがスローされます。

Unhandled Exception: system.TypeLoadException: A type load exception has occurred. at System.Threading.Thread.StartUnsafe () [0x00000] in <filename unknown>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeLoadException: A type load exception has occurred. at System.Threading.Thread.StartUnsafe () [0x00000] in <filename unknown>:0

今、私はMonoを初めて使用するので、パラメーター化されたスレッドのコードが「http://www.mono-project.com/ThreadsBeginnersGuide」からのものであるため、この未処理の例外が発生している理由を最初に知りません。そして第二に、私がキャッチを入れたときになぜそれが処理されないのですか(TypeLoadException tlex)

手伝ってください。

ありがとう

ニール

4

3 に答える 3

2

debiansqueezeを実行しているWebサーバーでも同様の問題が発生しました。 この投稿は私に手がかりを与えました。

仮想マシンをセットアップし、apt-getを使用してmonodevelop全体をインストールしましたが、機能しました。実稼働マシンにそれほど多くのパッケージと依存関係をインストールしたくなかったので、不足しているパッケージを分離するのに数時間を費やしました。

私の場合、それらは3つのパッケージ(libmono-system-xml-linq4.0-cil、libmono-system-componentmodel-dataannotations4.0-cil、libmono-system-componentmodel-composition4.0-cil)だけでしたが、もちろん、それはあなたのアプリケーションに依存します。

エラーメッセージによると、解決策を見つけるのは簡単ではありませんでした!

于 2013-08-26T13:40:20.767 に答える
1

この答えはあなたを助けることができるかもしれません..

Mono-LibreOffice System.TypeLoadException

同じプログラムをmonoでコンパイルして実行しようとしたことがありますか?

また、どのバージョンのモノを使用していますか?最新に更新する必要があるかもしれません。

モノバージョン

v2.10は最新の安定したリリースのようです。
http://www.go-mono.com/mono-downloads/download.html

于 2012-09-28T15:48:07.657 に答える
0

不足しているパッケージをインストールすることで問題は修正されましたが、Nugetを介してDLLを参照するときにもこのエラーが発生する可能性があることに気付きました。MonodevelopはこれらのDLLを出力フォルダー(つまり/ bin / Debug)にコピーしなかったため、プログラムを実行できませんでした。デバッガーはコードの最初の行に足を踏み入れることさえできませんでした!これはUbuntu16.04で私に起こりました。出力フォルダを確認し、一部のDLLが欠落していることに気付いた場合は、それらを手動でコピーして、アプリケーションが現在実行されているかどうかを確認する必要があります。

于 2016-10-02T11:53:45.057 に答える