0
Monoをインストールして、.NETアプリケーションをLinuxで実行しようとしました。LinuxでTypeInitializationExceptionをどのようにデバッグしますか?
これは私が得るものです:
Unhandled Exception:
System.TypeInitializationException: The type initializer for 'namespace.Class' threw an exception.
at System.Threading.ThreadHelper.ThreadStart_Context (System.Object state) [0x00017] in <8f2c484307284b51944a1a13a14c0266>:0
at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x0008d] in <8f2c484307284b51944a1a13a14c0266>:0
at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <8f2c484307284b51944a1a13a14c0266>:0
at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) [0x00031] in <8f2c484307284b51944a1a13a14c0266>:0
at System.Threading.ThreadHelper.ThreadStart() [0x0000b] in <8f2c484307284b51944a1a13a14c0266>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: The type initializer for 'shave.ChatBot' threw an exception.
at System.Threading.ThreadHelper.ThreadStart_Context (System.Object state) [0x00017] in <8f2c484307284b51944a1a13a14c0266>:0
at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x0008d] in <8f2c484307284b51944a1a13a14c0266>:0
at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <8f2c484307284b51944a1a13a14c0266>:0
at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) [0x00031] in <8f2c484307284b51944a1a13a14c0266>:0
at System.Threading.ThreadHelper.ThreadStart() [0x0000b] in <8f2c484307284b51944a1a13a14c0266>:0
私はVSデバッガを使用することはできませんので、私はは、Windows上でこのエラーを得ることはありません。
try..catch()
とConsole.WriteLine
の内部例外を追加しようとしましたが、アプリケーションがクラッシュしました。コードは次のようになります。
new Thread(Class.Method).Start();
私も前に別のスレッドを開始しますが、上記の行にコメントするとプログラムがクラッシュしなくなります。
そして、方法自体:
public static async void Method()
{
Console.WriteLine($"{Prefix.Info} Connecting.");
await /* my async connection method here */;
}
は、私は非常に困惑していると私は運で1時間以上の問題を把握しようとしています。助けが素晴らしいだろう!
多かれ少なかれ、http://stackoverflow.com/questions/12425199/type-initialization-exceptionの複製。例外はメソッドによって引き起こされるのではなく、 'Method'を含む型のstaticコンストラクタです。これは' Class'です。 – kiziu
@kiziuはい、明らかに、外部のアセンブリから私がそこに持っていたタイプの1つを見つけることができませんでした。どのように不幸な.. – shavit