参照アセンブリの1つで次のエラーが表示されます。
Could not load type 'System.Func`2' from Assembly 'MyAssembly, ...
正直なところ、System.TypeLoadExceptionエラーを最後に見たときのことを思い出せないか、見た場合の解決策は明らかでした。私の最初の本能は、何を確認することでした MSDNはそれについて言わなければなりませんでした :
TypeLoadExceptionは、共通言語ランタイムがアセンブリ、アセンブリ内の型を見つけられない場合、または型をロードできない場合にスローされます。
おそらく私はこれを間違って読んでいますが、CLRは単にタイプを見つけることができないと言っていますか?これがmscorlibにないものである場合、それはより理にかなっているかもしれません。これはすべてVS2010で.NET4の上に構築されたため、モノラルまたはその他の奇妙なライブラリの問題はありません。私はこれを考えすぎていますか?どうしたの?
問題は、バージョンに不一致があることです。すべてのアセンブリが.NET 4用にコンパイルされていることを確認してください。
リファクタリング後にこのエラーを受け取りました。同じ名前のDLLにコンパイルする2つのプロジェクトがありました。
プロジェクトのプロパティの「アプリケーション」セクションで「アセンブリ名」を確認します。
特定のシナリオについてはわかりませんが、通常、アセンブリバインドログビューアー(fuslogvw)は、型の読み込みの問題のデバッグに非常に役立ちます。詳細は http://msdn.Microsoft.com/en-us/library/e74a18c4.aspx
ロードしようとしているアセンブリを変更してもGACに古いバージョンが残っている場合にも、これが表示されることがあります。 VSプロジェクトで参照するものではなく、GACされたバージョンをロードしようとします。
クリーンアップ作業でクラスをあるプロジェクトから別のプロジェクトに移動すると、このエラーが発生しました。他の考えられるすべての理由を確認した後、ソリューションの各プロジェクトをリロードし、すべてが機能しました。
一部のクラスを独自のライブラリに移動するためにリファクタリングし、元のプロジェクトで使用していたものとは異なるバージョンのライブラリ(NuGetで取得)を新しいライブラリにロードしようとしたときに、この例外が発生しました。
それを修正したのは、古いプロジェクトでNuGetマネージャーを開き、適切なパッケージを新しいライブラリで使用していたのと同じバージョンに更新することでした。
この問題は、異なるプロジェクトに異なるバージョンのNuGetパッケージがインストールされている場合に発生する可能性があります。これらのケースを特定するには、