J'essaie d'ajouter une référence à une DLL .Net 2.0 dans une application WPF qui est ciblée sur le Framework .Net 4. J'ai ajouté <startup useLegacyV2RuntimeActivationPolicy="true">
au fichier app.config. L'application WPF se construit correctement, mais obtient une BadImageFormatException au moment de l'exécution en essayant d'accéder à la DLL .Net 2.0.utiliser .Net 2.0 dll dans .net 4.0 application wpf
« On a tenté de charger un programme avec un format incorrect »
Cela fonctionne avec un nouveau projet WPF de test, mais ne fonctionne pas sur mon application. Mon application utilise Entity Framework et MEF. Ces technologies pourraient-elles causer le problème?
Des idées?
Edit: Résolu
Selon le commentaire par Alois ci-dessous, j'avais mon application principale cible de « Any CPU » et la DLL a été la cible à 32 bits.
<startup useLegacyV2RuntimeActivationPolicy="true">
n'a pas été nécessaire
Est-il possible que l'assembly soit compilé pour 32 bits et que vous le chargez dans un processus 64 bits ou vice versa? Utilisez les corflags du SDK .NET Framework pour vérifier. –
@Alois: Merci. Je n'avais pas pensé à ça. Mon application était ciblée sur "Tout processeur". Le changer en x86 le laisse charger correctement. – Mike