Message d'erreur 'Impossible de charger un ou plusieurs des types demandés. Récupérez la propriété LoaderExceptions pour plus d'informations. '

c# entity-framework

Question

J'ai développé une application utilisant Entity Framework , SQL Server 2000, Visual Studio 2008 et Enterprise Library.

Cela fonctionne parfaitement localement, mais lorsque je déploie le projet dans notre environnement de test, le message d'erreur suivant s'affiche:

Impossible de charger un ou plusieurs des types demandés. Récupérer la propriété LoaderExceptions pour plus d'informations

Trace de pile: à System.Reflection.Module._GetTypesInternal (StackCrawlMark & stackMark)

à System.Reflection.Assembly.GetTypes ()

sur System.Data.Metadata.Edm.ObjectItemCollection.AssemblyCacheEntry.LoadTypesFromAssembly (contexte LoadingContext)

sur System.Data.Metadata.Edm.ObjectItemCollection.AssemblyCacheEntry.InternalLoadAssemblyFromCache (contexte LoadingContext)

sur System.Data.Metadata.Edm.ObjectItemCollection.AssemblyCacheEntry.LoadAssemblyFromCache (Assembly Assembly, Boolean loadReferencedAssemblies, Dictionnaire 2 knownAssemblies, Dictionary 2 & typesInLoading, List`1 & errors)

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

sur System.Data.Metadata.Edm.ObjectItemCollection.LoadAssemblyForType (Type type)

sur System.Data.Metadata.Edm.MetadataWorkspace.LoadAssemblyForType (Type, Assembly callAssembly)

at System.Data.Objects.ObjectContext.CreateQuery [T] (paramètres String queryString, ObjectParameter [])

Entity Framework semble avoir un problème, aucun indice sur la façon de le résoudre?

Réponse acceptée

J'ai résolu ce problème en définissant l'attribut Copier en local des références de mon projet sur true.


Réponse populaire

Cette erreur n'a pas de vraie réponse magique. La clé est d'avoir toutes les informations pour comprendre le problème. Il est fort probable qu'un assemblage référencé manque dans un assemblage chargé dynamiquement. Cet assemblage doit se trouver dans le répertoire bin de votre application.

Utilisez ce code pour déterminer ce qui manque.

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


Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi