Exécuter le client Oracle en mode 32 bits sur un ordinateur 64 bits

Je viens de passer d’un bureau Windows 7 32 bits à un ordinateur portable Windows 7 64 bits. Nous développons un programme C # qui contient environ 60 projets dans la solution. Je continue à avoir l’erreur suivante tout en essayant de construire:

Attempt to load Oracle client libraries threw BadImageFormatException. This problem will occur when running in 64 bit mode with the 32 bit Oracle client components installed 

Évidemment, l’erreur est assez explicite et j’essaie de charger toute ma solution en mode 32 bits. J’ai parcouru tous les projets et paramétré la plate-forme cible sur x86, mais l’erreur persiste. J’ai cherché sur Google et vu d’innombrables approches différentes, mais je n’arrive pas à résoudre ce problème. Quel est le meilleur moyen de s’assurer que mon projet s’exécute en mode 32 bits sur une machine 64 bits?

J’utilise Visual Studio 2008. J’envisage actuellement de passer à la version 32 bits, mais je veux vraiment éviter de le faire.

    J’ai constaté que vous devez installer le client Oracle 32 bits (vous pouvez télécharger le programme d’ installation à partir de leur site Web) même si vous utilisez une machine 64 bits.

    En outre, lors des discussions, les utilisateurs ont parlé du mode 32 bits, etc. Voici comment vérifier / définir cela pour une application hébergée IIS 7. Vous ne devriez pas avoir besoin de changer cela, mais j’ai ajouté ici pour l’exhaustivité / la référence future.

    • Lancez IIS 7 et développez le nœud du nom du serveur.
    • Cliquez sur le noeud Pools d’applications et trouvez le pool d’applications que vous utilisez.
    • Dans le panneau de droite, cliquez sur Paramètres avancés …
    • Dans la boîte de dialog qui apparaît, cochez le paramètre Applications 32 bits activées , qui est la troisième option à partir du haut.

    Vous devez modifier votre fichier .exe principal pour qu’il s’exécute uniquement en 32 bits. Vous pouvez le faire dans Visual Studio – il suffit de changer la cible de la plate-forme de “Tout processeur” à “x86”.

    Si ce n’est pas possible, utilisez corflags.exe qui force un exe existant à être une application 32 bits.

    Je suis aux sockets avec ce problème depuis des mois et je l’ai finalement résolu. Je pense que tous les messages sont utiles, mais il me manquait une pièce. Je n’avais pas de configuration d’instance Microsoft ODBC pour Oracle pour User DSN ou System DSN. Je travaille sur une machine Windows 8. Donc, pour moi, je devais accéder à la recherche générale dans Windows, saisir ODBC et ouvrir l’administrateur de sources de données ODBC (32 bits). Vérifiez si vous avez une configuration Microsoft ODBC pour Oracle sur l’onglet User DSN ou System DSN. Sinon, cliquez sur Ajouter et sélectionnez Microsoft ODBC pour Oracle. Remplissez les informations pour votre source de données que vous essayez de bash et cliquez sur OK. Assurez-vous de redémarrer votre ordinateur et c’est ce qui a finalement fonctionné pour moi. J’espère que cela aide certains d’entre vous.

    Dans mon cas, un client Oracle 64 bits a été installé sur ma machine, mais en générant toujours la même erreur. Donc, j’ai analysé cela dans mon application, allez dans Application, cliquez avec le bouton droit de la souris, allez dans -> Propriétés -> onglet Web et décochez l’option “Utiliser IIS Express” si vous utilisez un serveur Web IIS local. Le problème a été résolu.

    Vous devez modifier votre fichier .exe principal pour qu’il s’exécute uniquement en 32 bits. Vous pouvez le faire dans Visual Studio – il suffit de changer la cible de la plate-forme de “Tout processeur” à “x86”. https://msdn.microsoft.com/en-us/library/ms185328.aspx