오류 메시지 '요청한 유형 중 하나 이상을로드 할 수 없습니다. 자세한 내용은 LoaderExceptions 속성을 검색하십시오. '

c# entity-framework

문제

Entity Framework , SQL Server 2000, Visual Studio 2008 및 Enterprise Library를 사용하여 응용 프로그램을 개발했습니다.

로컬 환경에서는 문제없이 작동하지만 테스트 환경에 프로젝트를 배포 할 때 다음과 같은 오류가 발생합니다.

요청한 유형 중 하나 이상을로드 할 수 없습니다. 자세한 내용은 LoaderExceptions 속성 검색

스택 추적 : System.Reflection.Module._GetTypesInternal (StackCrawlMark 및 stackMark)

System.Reflection.Assembly.GetTypes ()에서

System.Data.Metadata.Edm.ObjectItemCollection.AssemblyCacheEntry.LoadTypesFromAssembly (LoadingContext context)

System.Data.Metadata.Edm.ObjectItemCollection.AssemblyCacheEntry.InternalLoadAssemblyFromCache (LoadingContext context)

System.Data.Metadata.Edm.ObjectItemCollection.AssemblyCacheEntry.LoadAssemblyFromCache (어셈블리 어셈블리, 부울 loadReferencedAssemblies, 사전 2 knownAssemblies, Dictionary 2 및 typesInLoading, List1 및 오류)

System.Data.Metadata.Edm.ObjectItemCollection.LoadAssemblyFromCache (ObjectItemCollection objectItemCollection, 어셈블리 어셈블리, 부울 loadReferencedAssemblies)

System.Data.Metadata.Edm.ObjectItemCollection.LoadAssemblyForType (유형 유형)

System.Data.Metadata.Edm.MetadataWorkspace.LoadAssemblyForType (형식 유형, Assembly callingAssembly)

System.Data.Objects.ObjectContext.CreateQuery [T] (문자열 쿼리 문자열, ObjectParameter [] 매개 변수)

엔티티 프레임 워크는 문제를 가지고있는 것처럼 보입니다. 문제를 해결하는 데 어떤 단서가 있습니까?

수락 된 답변

필자의 프로젝트 참조의 로컬 복사 특성을 true로 설정하여이 문제를 해결했습니다.


인기 답변

이 오류에는 진정한 마법 총알 응답이 없습니다. 열쇠는 모든 정보를 가지고 문제를 이해하는 것입니다. 대개 동적으로로드 된 어셈블리에는 참조 된 어셈블리가 없습니다. 이 어셈블리는 응용 프로그램의 bin 디렉토리에 있어야합니다.

누락 된 사항을 확인하려면이 코드를 사용하십시오.

using System.IO;
using System.Reflection;
using System.Text;

try
{
    //The code that causes the error goes here.
}
catch (ReflectionTypeLoadException ex)
{
    StringBuilder sb = new StringBuilder();
    foreach (Exception exSub in ex.LoaderExceptions)
    {
        sb.AppendLine(exSub.Message);
        FileNotFoundException exFileNotFound = exSub as FileNotFoundException;
        if (exFileNotFound != null)
        {                
            if(!string.IsNullOrEmpty(exFileNotFound.FusionLog))
            {
                sb.AppendLine("Fusion Log:");
                sb.AppendLine(exFileNotFound.FusionLog);
            }
        }
        sb.AppendLine();
    }
    string errorMessage = sb.ToString();
    //Display or log the error based on your application.
}


아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.