web-dev-qa-db-fra.com

BadImageFormatException lors de l'utilisation d'Oracle Client 64 bits et de Visual Studio 2010!

Un membre de notre équipe de développement a eu une erreur

Tentative de chargement des bibliothèques client Oracle a généré une exception BadImageFormatException

Il semble 

Ce problème se produit lors de l'exécution en mode 64 bits avec les composants clients Oracle 32 bits installés.

Mais c’est moi qui ai configuré le système - voici les spécifications:

  • Windows 7 64 bits
  • Visual Studio 2010 Premium
  • Oracle Client 11g R2 64Bit installé en tant que Runtime

Des pensées?

20
Data-Base

Je l'ai vu à quelques reprises récemment lors de l'exécution de Visual studio sur un système d'exploitation à 64 bits. Un moyen simple consiste à installer le client 32 bits sur votre ordinateur de développement 64 bits. 

Cordialement, Pete

9
HaggardPete

Je suis désolé d’ajouter une deuxième réponse, mais si vous avez des clients 64 bits et 32 ​​bits installés sur le même ordinateur, vous pouvez également rencontrer ce problème.

Deux clients installés

C:\Oracle\product\11.2.0\client32Bit
C:\Oracle\product\11.2.0\client64Bit

Contrôlez votre chemin Variable d'environnement. Quel client Oracle est en premier, il est chargé avant un autre.

 echo %PATH%
 XXXX;C:\Oracle\product\11.2.0\client64Bit\BIN;XXX

Depuis que mon client Oracle 64 bits est le premier dans PATH, VS.NET essaie de l’utiliser pour Oracle Connections et lève une exception d’image incorrecte.

  set PATH=C:\Oracle\product\11.2.0\client32Bit\BIN;%PATH%
  REM Visual Studio 2008
  "C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe"
  REM Visual Studio 2010
  "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe"

Après cela, vous pouvez vous connecter à Oracle. Bien sûr, vous pouvez mettre le client 32 bits en premier dans le chemin mais je préfère mettre le client 64 bits avant le 32 bits pour les autres applications.

19
Atilla Ozgur

La même erreur s'est produite après la mise à niveau vers Windows 7. Je l'ai résolue en modifiant la cible de la plate-forme en x86 dans l'onglet Construction de la page Propriétés dans Visual Studio.

9
Keith Ketterer

Même problème que vous pouvez rencontrer également dans Visual Studio 2013 et le client Oracle 64 bits (versions 11 et 12). Ma solution est: 

a) Projet de bureau. Propriétés du projet> Construire> Désactivez la case à cocher "Préférer 32 bits".

b) Projet ou site Web ASP.NET. Menu principal> OUTILS> Options> Projet et solutions> Projets Web> Activez la case à cocher "Utiliser la version 64 bits de IIS Express pour les sites Web et les projets".

6
codemonkey

J'ai changé Prise en charge activée 32 bits enFALSEdans mon pool d'applications dans IIS7. Cela a fonctionné pour moi. J'ai trouvé ça facile. À votre santé :)

3
SharpCoder

Si vous voulez utiliser 64 bits, voyez ma réponse ici:
Configuration Oracle DataAccess 64 bits

Si vous êtes satisfait du 32 bits, installez simplement la version 32 bits d’Oracle Data Access Components. Étant donné que le serveur de développement de Visual Studio est 32 bits, vous ne rencontrerez aucun problème.

0
Hüseyin Yağlı

La solution rapide et facile à ce problème vous devez suivre les étapes ci-dessous seulement:

  1. Installez ODACv11.2021Xcopy_x64 en exécutant le fichier install.bat puis cochez "c:\Oracle" comme chemin créé.
  2. copiez votre dossier de configuration réseau [contenant le dossier admin avec le fichier tnsnames.ora] dans Oracle 32 bits vers "c:\Oracle".
  3. Ajout du chemin "c:\Oracle" à la variable d'environnement PATH.

prendre plaisir

Cordialement, Eng. Nawaf H. Bin Taleb.

0
Nawaf

J'ai eu la même exception et j'ai découvert que cela s'était produit lors de la mise à niveau vers une version MVC supérieure à 2.0. Dans mon cas, MVC 4.0.

La création d'un nouveau projet dans MVC 2.0 a résolu le problème. 

0
thabet

Solution simple: fonctionne pour moi. essaye ça.

J'ai passé presque 4 heures à trouver la solution au problème BadImageFormatException.

Scénario: VS 2012, j'essayais d'ajouter un modèle d'entité à la base de données Oracle pour la première fois. Je savais qu'il y avait deux étapes pour ajouter un modèle pour la base de données Oracle: 

  1. Connecter la base de données Oracle à l'aide de l'exploration de serveur (où la chaîne de connexion sera créée et pouvant être utilisée lors de l'ajout du modèle)
  2. Ajoutez un modèle à l'aide de la chaîne de connexion existante (créée à l'étape 1).

Mais j’ai été frappé à l’étape 1 avec l’avertissement BadImageFormatException et j’ai trouvé la solution .Résolution:

  1. Suivez les instructions données dans le lien et terminez l'installation du client Oracle http://www.Oracle.com/technetwork/topics/dotnet/whatsnew/vs2012welcome-1835382.html
  2. Une fois l’installation terminée avec succès, c’est-à-dire une étape simple. ajouter un modèle au projet. Dans ce cas, utilisez la chaîne de connexion existante de la liste déroulante et fournissez le nom d’utilisateur/pwd.

alors vous êtes prêt à utiliser le modèle :)

0