Mensaje de error 'No se puede cargar uno o más de los tipos solicitados. Recupere la propiedad LoaderExceptions para obtener más información '.

c# entity-framework

Pregunta

He desarrollado una aplicación utilizando Entity Framework , SQL Server 2000, Visual Studio 2008 y Enterprise Library.

Funciona absolutamente bien localmente, pero cuando implemento el proyecto en nuestro entorno de prueba, aparece el siguiente error:

No se puede cargar uno o más de los tipos solicitados. Recupera la propiedad LoaderExceptions para más información.

Seguimiento de la pila: en System.Reflection.Module._GetTypesInternal (StackCrawlMark & stackMark)

en System.Reflection.Assembly.GetTypes ()

en System.Data.Metadata.Edm.ObjectItemCollection.AssemblyCacheEntry.LoadTypesFromAssembly (Cargando contexto de contexto)

en System.Data.Metadata.Edm.ObjectItemCollection.AssemblyCacheEntry.InternalLoadAssemblyFromCache (contexto LoadingContext)

en System.Data.Metadata.Edm.ObjectItemCollection.AssemblyCacheEntry.LoadAssemblyFromCache (Ensamblaje, Conjuntos de referencia boolean loadReferenced, Dictionary 2 knownAssemblies, Dictionary 2 & typesInLoading, List`1 & errors)

en System.Data.Metadata.Edm.ObjectItemCollection.LoadAssemblyFromCache (ObjectItemCollection objectItemCollection, Assembly Assembly, Boolean loadReferencedAssemblies)

en System.Data.Metadata.Edm.ObjectItemCollection.LoadAssemblyForType (tipo de tipo)

en System.Data.Metadata.Edm.MetadataWorkspace.LoadAssemblyForType (Tipo de tipo, Ensamblado de ensamblaje)

en System.Data.Objects.ObjectContext.CreateQuery [T] (String queryString, ObjectParameter [] parameters)

Entity Framework parece tener problemas, ¿alguna pista de cómo solucionarlo?

Respuesta aceptada

Resolví este problema estableciendo el atributo Copiar local de las referencias de mi proyecto en verdadero.


Respuesta popular

Este error no tiene una verdadera respuesta mágica. La clave es tener toda la información para entender el problema. Lo más probable es que a un ensamblado cargado dinámicamente le falte un ensamblado referenciado. Ese ensamblaje debe estar en el directorio bin de su aplicación.

Use este código para determinar lo que falta.

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.
}


Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué