Je viens de vérifier une révision de Subversion dans un nouveau dossier. Ouvert la solution et je l’obtiens quand je cours:
Impossible de charger le fichier ou l’assembly ‘xxxx’ ou l’une de ses dépendances. Une tentative de chargement d’un programme avec un format incorrect a été effectuée.
C’est le même code que j’avais enregistré il y a un moment. Pourquoi est-ce que ça se fait maintenant? Je vois maintenant aussi un Debug x86 au lieu de juste déboguer dans le dossier bin de ce projet xxx. Qu’est-ce que Debug x86 et pourquoi ne pas avoir Debug comme je le faisais dans le dossier bin?
On dirait qu’une partie du projet est en cours de construction pour x86 uniquement alors que le rest est en cours de construction pour n’importe quel processeur / x64. Cela m’a mordu aussi. Est-ce que vous utilisez un x64 (ou euh … IA64)?
Vérifiez les propriétés du projet et assurez-vous que tout est construit pour “N’importe quelle CPU”. Si vous êtes dans Visual Studio, vous pouvez tout vérifier en allant dans le menu “x86” ou “Any CPU” (à côté du menu “Debug” / “Release”) dans la barre d’outils en haut de l’écran et en cliquant sur “Panneau de configuration…”
Si vous obtenez cette erreur lors de l’exécution du site dans IIS 7+ sur des serveurs 64 bits, il se peut que des assemblys 32 bits et que votre pool d’applications dispose de l’option “Activer les applications 32 bits” sur False; Définissez cette option sur true et redémarrez le site pour le faire fonctionner.
J’ai eu cette erreur en essayant d’utiliser le terrible SDK Business Objects 4 for .Net .
Ils envoient cinq fichiers BusinessObjects * .dll, mais tous sont en 64 bits.
Pour que ma page Web se charge, je devais cliquer sur Outils \ Options , puis modifier ce paramètre dans VS2013:
inetmgr puis venir à Application pool-> Paramètres avancés de votre pool-> aura l’option “Activer les applications 32 bits” définie sur true; et redémarrez IIS. revérifier.!
L’exception BadImageFormatException sur une application s’exécutant sur IIS (ne s’exécutant pas à partir de VS, car Visual Studio corrige le problème à l’aide de la version pour “Any CPU”) peut être provoquée par les éléments suivants:
Le site est un serveur x64 et le paramètre par défaut du pool d’applications pour Activer les applications 32 bits était Faux. et vous avez des assemblages 32 bits
Au niveau de Visual Studio, le correctif est le suivant:
Assurez-vous de vérifier vos parameters pour “Prefer 32-bit”. Dans mon cas, Visual Studio 2012 avait ce paramètre vérifié par défaut. Essayer d’utiliser quelque chose d’une DLL externe a échoué jusqu’à ce que je décoche la case “Préférer 32 bits” .
C’est certainement un problème avec certains des projets en cours de construction pour la compatibilité x86 au lieu de n’importe quel processeur. Si je devais deviner, je dirais que certaines des références entre vos projets font probablement référence aux dll de certains dossiers bin \ debug au lieu d’être des références de projet.
Lorsqu’un projet est compilé pour x86 au lieu de ‘Any CPU’, les DLL vont dans le dossier bin \ x86 \ debug au lieu de bin \ debug (ce qui correspond probablement à votre recherche).
Mais dans tous les cas, vous devriez utiliser des références de projet entre vos projets.
si dans le studio visuel avec IIS express fonctionne et quand publié a échoué, essayez ceci: