2010-03-10 7 views
2

J'essaie d'accéder à une base de données Oracle à partir d'un programme que j'écris sur Windows 7 64 bits. Chaque fois qu'il initialise le client, je reçois un BadImageFormatException se plaignant que j'essaie d'utiliser un client 32 bits dans un environnement 64 bits. J'ai essayé de compiler le programme de toute façon (n'importe quel CPU, 32, 64 bits), mais cela n'a pas résolu le problème. De l'aide?System.Data.OracleClient sous Windows 7 64

+0

Faites-vous référence à la version 64 bits d'OCI? –

Répondre

1

Je suppose que le message d'erreur est correct. Vous avez une DLL Oracle 32 bits que vous utilisez à partir d'un processus 64. La DLL Oracle effectue probablement certains interop avec du code natif, ce qui peut nécessiter d'être spécifique au processeur.

Il existe plusieurs façons de résoudre ce problème.

Option 1: Obtenez le 64 bit Oracle DLLs.

Option 2: Assurez-vous que votre processus est de 32 bits. Les fichiers .NET exe marqués pour AnyCPU démarrent un processus 64 bits sur un système d'exploitation 64 bits. Mais si vous marquez votre fichier EXE pour x86 alors cela devrait fonctionner. Pour les applications Web, vous devez définir un indicateur 32 bits quelque part dans IIS.

1

Vous devez configurer votre projet pour cibler le .NET Framework 4, en vous rendant sur Project-Designer ->Target Framework.

Ensuite, vous devez supprimer l'ancien Oracle dll, et utiliser la nouvelle 64-Bit-Version du Oracle dll qui est inclus dans le .NET Framework 4.

Questions connexes