Dépannage des assemblys .NET 2.0 dans les projets .NET 4.0
L'intégration d'anciennes bibliothèques .NET dans des projets plus récents peut parfois entraîner des problèmes de compatibilité. Ce guide aborde un problème courant rencontré lors de l'utilisation d'un framework .NET 2.0 System.Data.SQLite dans une application .NET 4.0.
Le problème :
Tenter d'utiliser un assembly en mode mixte (généralement C/CLI) conçu pour le runtime .NET 2.0 (.NET Framework, version v2.0.50727) dans un projet .NET 4.0 peut entraîner l'erreur suivante :
"L'assemblage en mode mixte est construit sur la version 'v2.0.50727' du runtime et ne peut pas être chargé dans le runtime 4.0 sans informations de configuration supplémentaires."
La solution :
Cette erreur est résolue en ajoutant une section de configuration spécifique au fichier App.Config de votre application. Cette configuration indique au Common Language Runtime (CLR) comment gérer l’ancien assembly. Ajoutez l'extrait XML suivant dans l'élément <configuration>
de votre App.Config :
<code class="language-xml"><configuration> <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime sku=".NETFramework,Version=v4.0" version="v4.0"/> </startup> </configuration></code>
La clé ici est useLegacyV2RuntimeActivationPolicy="true"
. Ce paramètre permet au CLR de charger l'assembly en mode mixte à l'aide du runtime .NET 4.0, surmontant ainsi l'incompatibilité de version.
Considération importante :
Cette configuration n'est requise que pour les assemblages en mode mixte. Les assemblys purement gérés (.NET) compilés pour .NET 2.0 se chargent généralement sans avoir besoin de cette modification App.Config.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!