Entity Framework LoaderExceptions要求された1つ以上の型を読み込めません

entity-framework

質問

エンティティフレームワークを使用するWebサービスがあります。テスト環境にリリースすると、次のようなエラーメッセージが表示されます。

「1つ以上の要求されたタイプを読み込めません。」 - 下のスタックトレース

テストボックスには.NET 3.5 SP 1がインストールされています。以前の記事をここで読みました。

エラーメッセージ '要求された種類の1つ以上を読み込めません。詳細については、LoaderExceptionsプロパティを取得してください。

しかし答えは私の場合それを解決しない。私は自分の開発マシンから作業コピーをコピーしてテストボックスに貼り付けましたが、デバッグDLLに問題がないことを確認します(答えが示すとおり)。

これは既知の問題ですか? Iveはこれをデバッグしようとしているのに一日中費やしました!誰かが解決策を知っているなら、私に知らせてください!

Retrieve the LoaderExceptions property for more information.   at System.Reflection.Module._GetTypesInternal(StackCrawlMark& stackMark)
   at System.Reflection.Assembly.GetTypes()
   at System.Data.Metadata.Edm.ObjectItemCollection.AssemblyCacheEntry.LoadTypesFromAssembly(LoadingContext context)
   at System.Data.Metadata.Edm.ObjectItemCollection.AssemblyCacheEntry.InternalLoadAssemblyFromCache(LoadingContext context)
   at System.Data.Metadata.Edm.ObjectItemCollection.AssemblyCacheEntry.LoadAssemblyFromCache(Assembly assembly, Boolean loadReferencedAssemblies, Dictionary`2 knownAssemblies, Dictionary`2& typesInLoading, List`1& errors)
   at System.Data.Metadata.Edm.ObjectItemCollection.LoadAssemblyFromCache(ObjectItemCollection objectItemCollection, Assembly assembly, Boolean loadReferencedAssemblies)
   at System.Data.Metadata.Edm.ObjectItemCollection.LoadAssemblyForType(Type type)
   at System.Data.Metadata.Edm.MetadataWorkspace.LoadAssemblyForType(Type type, Assembly callingAssembly)
   at System.Data.Objects.ObjectContext.CreateQuery[T](String queryString, ObjectParameter[] parameters)
   at Company.Domain.ICommuicationsEntities.CreateQuery[T](String queryString, ObjectParameter[] parameters)
   at Comany.EntityFrameworkRepository`1.GetQuery()
   at Comany.Repositories.EntityFrameworkRepository`1.GetFiltered(Expression`1 filter, IncludeBuilder`1 includeBuilder)
   at Comany.Repositories.EntityFrameworkRepository`1.GetFiltered(Expression`1 filter)

受け入れられた回答

スタックの一番上の行が言うように:

詳細については、 LoaderExceptionsプロパティを取得してください。

デバッガで例外を調べることでこれを見つけることができます。


人気のある回答

スタックトレースの最初の行「詳細については、LoaderExceptionsプロパティを取得する」が間違いなく重要です。 ReflectionTypeLoadExceptionをキャッチするか、一般的な例外をキャストする必要があります。

catch (System.Reflection.ReflectionTypeLoadException ex) {
    ex.LoaderExceptions;
} catch (Exception ex) {
    if (ex is System.Reflection.ReflectionTypeLoadException)
        ((System.Reflection.ReflectionTypeLoadException)ex).LoaderExceptions;
}

その後、LoaderExceptionsプロパティを調べて、どのDLL参照が欠落している可能性があるかを調べることができます。



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ