J'ai développé une application dans VS2010 et la compilation du .NET 4.0 comme cadre cible. Après avoir intégré une bibliothèque dans ma demande, je reçois le message d'erreur suivant lorsque j'essaie de compiler: P>
Le mode mixte est construit contre la version 'V1.1.4322' du temps d'exécution et ne peut pas être chargé dans le runtime 4.0 sans informations de configuration supplémentaires. P> blockQuote>
La bibliothèque fonctionne bien sous .NET 3.5, mais lorsque je change mon cadre cible sur .net 3.5, je reçois l'erreur suivante pour tous mes fichiers .resx: p>
erreur d'erreur 1 Référence d'objet non définie sur une instance d'objet. P> blockQuote>
J'ai essayé ctrl-h Version = 4.0.0.0 à la version = 3.5.0.0 Mais cela ne semble pas fonctionner. Y a-t-il quelque chose que je puisse faire d'autre qui crée une nouvelle application? P>
3 Réponses :
Vous devriez pouvoir effectuer ce travail par paramètres de configuration dans App.Config. P>
Il suffit d'ajouter le uselegacyv2runtimeAactivationpolicy = "vrai" code> drapeau sur votre AppConfig dans la section de démarrage . Cela provoque l'exécution de .NET 4 pour gérer des assemblages de mode mixte plus anciens. P>
Ouvrez votre fichier .resx avec l'éditeur XML au lieu de l'éditeur de ressources et recherchez Notez que vous pouvez également revenir à .NET 4 et essayer d'ajouter ce qui suit à votre app.config pour permettre aux assemblages plus anciens d'exécuter sur le nouveau runtime: P> system.windows.forms, version = 4.0.0.0 code>. Il devrait y avoir 2 instances de cette chaîne. Remplacez 4.0.0.0 code> avec 2.0.0.0 code> et enregistrez le fichier. Vos ressources doivent fonctionner correctement maintenant. <configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
</configuration>
Propriétés ouvertes du projet. Puis sélectionnez les ressources. Supprimez toutes les images de ressources et insérez-les à nouveau. Maintenant la compilez. Votre projet fonctionne maintenant .. :) p>