Welche 'zusätzliche Konfiguration' ist notwendig, um eine .NET 2.0 Mixed Mode Assembly in einem .NET 4.0 Projekt zu referenzieren?

Ich habe ein Projekt, in dem ich einige der .NET 4.0-Funktionen verwenden möchte, aber eine Kernanforderung ist, dass ich das System.Data.SQLite-Framework verwenden kann, die gegen 2.X kompiliert wird. Ich sehe Erwähnung dieses möglich ist, wie die akzeptierte Antwort hier, aber ich sehe nicht, wie dies tatsächlich zu erreichen.

Wenn ich versuche, mein 4.0-Projekt auszuführen und dabei auf die 2.X-Assembly verweise, erhalte ich:

*Mixed mode assembly is built against version 'v2.0.50727' of the runtime

und kann nicht in die 4.0-Laufzeitumgebung geladen werden, ohne zusätzliche Konfigurationsinformationen geladen werden.*

Welche "zusätzliche Konfiguration" ist erforderlich?

Lösung

Um eine CLR 2.0 Mixed Mode Assembly zu verwenden, müssen Sie Ihre App.Config-Datei so ändern, dass sie Folgendes enthält:

<?xml version="1.0"?>




Der Schlüssel ist das useLegacyV2RuntimeActivationPolicy-Flag. Dies veranlasst die CLR, die neueste Version (4.0) zu verwenden, um Ihre Mixed-Mode-Assembly zu laden. Ohne dieses Flag wird es nicht funktionieren.

Beachten Sie, dass dies nur für Mixed-Mode-Assemblies (C++/CLI) von Bedeutung ist. Sie können alle verwalteten CLR 2-Assemblies laden, ohne dies in app.config anzugeben.

Kommentare (8)

Dieser Forumsbeitrag im .NET Framework Developer Center. Er könnte einige Einblicke bieten.

(Zur Konfigurationsdatei der Anwendung hinzufügen.)





Kommentare (1)

Je nachdem, auf welche Version des Frameworks Sie abzielen, sollten Sie hier nachsehen, um den richtigen String zu erhalten:

http://msdn.microsoft.com/en-us/library/ee517334.aspx

Ich habe Stunden damit verschwendet, herauszufinden, warum meine Version für den .Net 4.0 Client die Vollversion benötigt. Am Ende habe ich dies verwendet:



Kommentare (0)