414 Stimmen

Fehlermeldung 'Einer oder mehrere der angeforderten Typen können nicht geladen werden. Rufen Sie die Eigenschaft LoaderExceptions für weitere Informationen ab.'

Ich habe eine Anwendung entwickelt, die Entity Framework , SQL Server 2000, Visual Studio 2008 und Enterprise Library.

Lokal funktioniert es einwandfrei, aber wenn ich das Projekt in unserer Testumgebung bereitstelle, erhalte ich den folgenden Fehler:

Einer oder mehrere der angeforderten Typen können nicht geladen werden. Rufen Sie die Eigenschaft LoaderExceptions für weitere Informationen ab

Stack trace: at System.Reflection.Module._GetTypesInternal(StackCrawlMark& stackMark)

bei 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)

Entity Framework scheint ein Problem zu haben, gibt es einen Hinweis, wie man es beheben kann?

620voto

Ben Gripka Punkte 15106

Für diesen Fehler gibt es kein Patentrezept. Der Schlüssel ist, alle Informationen zu haben, um das Problem zu verstehen. Höchstwahrscheinlich fehlt einer dynamisch geladenen Baugruppe eine referenzierte Baugruppe. Diese Baugruppe muss sich im bin-Verzeichnis Ihrer Anwendung befinden.

Verwenden Sie diesen Code, um festzustellen, was fehlt.

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

115voto

Mentoliptus Punkte 2768

Ich habe dieses Problem gelöst, indem ich das Attribut "Copy Local" in den Referenzen meines Projekts auf "true" gesetzt habe.

77voto

Kenny Eliasson Punkte 1997

Eine Lösung, die bei mir funktioniert hat, war, die Ordner bin/ und obj/ zu löschen und die Lösung neu zu erstellen.

Aktualisierung:

Oder Sie können versuchen, im Projektmappen-Explorer mit der rechten Maustaste auf den Projektmappenknoten zu klicken und auf "Projektmappe bereinigen" und dann auf "Projektmappe neu erstellen" zu klicken (danke Emre Guldogan).

38voto

William Edmondson Punkte 3529

Zwei mögliche Lösungen:

  1. Sie kompilieren im Freigabemodus, setzen aber eine ältere kompilierte Version aus dem Debug-Verzeichnis ein (oder andersherum).
  2. Sie haben nicht die richtige Version von .NET Framework in Ihrer Testumgebung installiert.

19voto

Dev Punkte 1301

Die Lösung war, die LoaderException zu überprüfen: In meinem Fall fehlten einige der DLL-Dateien.

Enter image description here

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X