2011-09-20 13 views
10

私にトラブルシューティングの方法を教えてもらえますかSystem.TypeLoadExceptionトラブルシューティングを行うにはどうすればよいですか:System.TypeLoadException?

私は同じ溶液中でのユニットテストプロジェクトから参照する私の溶液中で、既存のプロジェクトのためにこの例外を持っています。

この例外は、ユニットテストを実行するとスローされます。彼らはので、この例外の失敗:

詳細:

試験方法 をMyErrorHandler.Test.MyTest.Parse_RecievesValidMessage_ReturnsArray が例外を投げた:System.TypeLoadException:アセンブリからタイプ 'MyTestNameSpace' をロードできませんでした。「MyTestAssemblyName。テスト、 バージョン= 1.0.0.0、文化=ニュートラル、PublicKeyToken = Somenumber。

私は何をチェックすべきか、どこが、私が調査を開始する必要がありますか?例外メッセージで

+1

例外をトリガする要因は何ですか? – Gabe

+0

完全な例外は何ですか? –

+0

私の追加をご覧ください。 – pencilCake

答えて

2

、または多分InnerExceptionプロパティに、あなたは完全修飾名、バージョン、アセンブリで、要求されたタイプだったものを見つけるかもしれません。指定されたアセンブリがアプリケーションディレクトリから到達可能かどうかを確認します。アプリケーションディレクトリまたはアプリケーションのプライベートプロービングパスの到達可能な意味

EDIT:また、(式ローダのロードが失敗したアセンブリによって参照される)のサテライトアセンブリが到達可能であることを確認してください。

0

内部例外を見てください。これは、静的コンストラクターが例外をスローしたときによく発生します。

2

あなたは、デバッグから「例外がスローされたときにブレーク」に切り替えてみてください - >ツール - >例外とスローされ、カラム内のすべてのチェックボックスをクリックしてください。テストを再実行すると、この例外がどこにスローされているのかを正確に把握できるはずです。

0

まあ...それはまったく悪いことでした。

私はbinフォルダにDLLが見つからないという誤ったアセンブリ名を付けました。

私の仲間のおかげで、彼は私にbinフォルダを確認するように指示しました。追加された参照の「パス」を確認した後、私はそれがまったく別の場所を探していることに気付きました。実行アセンブリは、指定された型を持つアセンブリと同じ名前を持っている場合、この例外がスローされ

11

つの状況があります。たとえば、MyApp.exeを実行していて、タイプがMyApp.dllの場合、CLRはタイプがMyApp.exeであるとみなします。解決策は、これらのアセンブリの1つをリネームすることです。

+4

+1これはちょうど頭がたくさんの後に私の尾を救ってくれてありがとう! –

関連する問題