Mixed mode assembly hiba .NET 4 alatt

Épp WPF alól matatok SQLite adatbázist (majd a jövő csütörtöki Ethical Hacking Konferencián megmutatom, hogy miért 😉 ), ami tökéletesen működött is .NET 2.0 alatt, de mikor áttettem .NET 4 alá, az alábbi hibaüzenet köszöntött, ráadásul futási időben:

System.IO.FileLoadException was unhandled
Message=Mixed mode assembly is built against version ‘v2.0.50727’ of the runtime and cannot be loaded in the 4.0 runtime without additional configuration information.

A problémát nyilvánvalóan az okozta, hogy a netről letöltött System.Data.SQLite szerelvény még az előző framework verzióhoz készült. A mixed mode assembly egyébként olyan szerelvény, ami .NET-es és C++ kódot is tartalmaz. A hibaüzenetből kiderül, hogy valami konfigolni kell, ezért létrehoztam egy app.config fájlt az alábbi tartalommal és máris megoldódott a probléma:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <startup useLegacyV2RuntimeActivationPolicy="true">
            <supportedRuntime version="v4.0"/>
        </startup>
    </configuration>

Hasonló előjöhet webes fejlesztésnél is, ott a WebDev.WebServer40.exe.config fájlt kell kiegészíteni a startup elemmel. A useLegacyV2RuntimeActivationPolicy-ről bővebben Mark Miller blogbejegyzésében lehet olvasni.

 

Technorati-címkék: ,

Advertisements

One thought on “Mixed mode assembly hiba .NET 4 alatt

  1. Sandeep

    Really very valuable code for assemble .Net. I check and used this in my code base. Found good solution in your code. Thnaks to share such type of valuable code.

    Reply

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s