Heim >Backend-Entwicklung >C++ >Wie kann ich den Fehler „Assembly im gemischten Modus' beim Verweisen auf eine .NET 2.0-Assembly in einem .NET 4.0-Projekt beheben?
Fehlerbehebung bei .NET 2.0-Assemblys in .NET 4.0-Projekten
Die Integration älterer .NET-Bibliotheken in neuere Projekte kann manchmal zu Kompatibilitätsproblemen führen. Dieses Handbuch befasst sich mit einem häufigen Problem, das bei der Verwendung eines .NET 2.0 System.Data.SQLite-Frameworks innerhalb einer .NET 4.0-Anwendung auftritt.
Das Problem:
Der Versuch, eine für die .NET 2.0-Laufzeit (.NET Framework, Version v2.0.50727) erstellte Mixed-Mode-Assembly (normalerweise C/CLI) in einem .NET 4.0-Projekt zu verwenden, kann zu folgendem Fehler führen:
„Assembly im gemischten Modus basiert auf Version ‚v2.0.50727‘ der Laufzeit und kann nicht ohne zusätzliche Konfigurationsinformationen in die Laufzeit 4.0 geladen werden.“
Die Lösung:
Dieser Fehler wird behoben, indem Sie der App.Config-Datei Ihrer Anwendung einen bestimmten Konfigurationsabschnitt hinzufügen. Diese Konfiguration weist die Common Language Runtime (CLR) an, wie mit der älteren Assembly umzugehen ist. Fügen Sie das folgende XML-Snippet im <configuration>
-Element Ihrer App.Config hinzu:
<code class="language-xml"><configuration> <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime sku=".NETFramework,Version=v4.0" version="v4.0"/> </startup> </configuration></code>
Der Schlüssel hier ist useLegacyV2RuntimeActivationPolicy="true"
. Diese Einstellung ermöglicht es der CLR, die Mixed-Mode-Assembly mithilfe der .NET 4.0-Laufzeit zu laden und so die Versionsinkongruenz zu überwinden.
Wichtige Überlegung:
Diese Konfiguration ist nur für Mixed-Mode-Assemblys erforderlich. Rein verwaltete (.NET) Assemblys, die für .NET 2.0 kompiliert wurden, werden im Allgemeinen geladen, ohne dass diese App.Config-Änderung erforderlich ist.
Das obige ist der detaillierte Inhalt vonWie kann ich den Fehler „Assembly im gemischten Modus' beim Verweisen auf eine .NET 2.0-Assembly in einem .NET 4.0-Projekt beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!