19

「Exception Details: System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types.Retrieve the LoaderExceptions property for more information.」というタイプの例外を受け取りました。次のコードを使用します。

public IEnumerable<Type> FindClassesOfType(Type assignTypeFrom, IEnumerable<Assembly> assemblies, bool onlyConcreteClasses = true)
    {
        foreach(var a in assemblies)
        {
            foreach (var t in a.GetTypes())

各アセンブリで定義されている型を取得する必要がありますが、生成できないようです。

DLLの削除、ソリューションのクリーンアップ、ソリューションのリロードなど、間違ったアセンブリの作成に関連する一般的な手順をすべて実行しましたが、何も起こりませんでした。

エラーの詳細情報を取得する方法を見つけたり、どのアセンブリが問題を発生させているかなどを見つけたりして、この問題を解決するためのアイデアを求めたいと思います。現在の例外メッセージは非常に曖昧で、どれが問題であるかを認識できません。

ps: 追加情報です。再構築アクションを実行すると、すべてのプロセスがエラーなしで正しく生成されます。

4

3 に答える 3

27

エラーメッセージには、必要なものがすべて表示されます。

try {
    // your code
} catch (ReflectionTypeLoadException ex) {
    // now look at ex.LoaderExceptions - this is an Exception[], so:
    foreach(Exception inner in ex.LoaderExceptions) {
        // write details of "inner", in particular inner.Message
    }
}
于 2011-05-22T07:48:35.340 に答える
2

DLL はあなたによって作成されましたか? どのフレームワークをターゲットにしていますか?

私はちょうど今この問題に直面しました。外部ライブラリをフレームワーク 3.5 (CLR2 を使用) でコンパイルしても、DLL をインポートできませんでした。エラーはあなたのものと同じでした。フレームワーク 3.0 を対象とするライブラリを再構築する際の問題を解決し、現在は機能しているようです。問題なくプラグインフォルダーにdllを残しています。

Unity フォーラムには、同様の問題がたくさんあります。

すでに解決策を持っているかもしれませんが、これは将来それを必要とする人を助けることができます (私が必要としていたように)。

よろしくお願いします!

于 2014-05-17T23:28:42.503 に答える