wake-up-neo.com

BadImageFormatException bei Verwendung von Oracle Client 64 Bit und Visual Studio 2010!

Ein Mitglied unseres Entwicklerteams hat einen Fehler erhalten

Beim Versuch, Oracle-Clientbibliotheken zu laden, wurde die BadImageFormatException ausgelöst

Es scheint 

Dieses Problem tritt auf, wenn im 64-Bit-Modus die 32-Bit-Oracle-Clientkomponenten installiert sind.

Aber ich habe das System konfiguriert - Hier sind die Spezifikationen:

  • Windows 7 64-Bit
  • Visual Studio 2010 Premium
  • Oracle Client 11g R2 64Bit als Runtime installiert

Irgendwelche Gedanken?

20
Data-Base

Ich habe dies kürzlich gesehen, als ich Visual Studio auf einem 64Bit O/S lief. Ein einfacher Workround ist die Installation des 32-Bit-Clients auf Ihrem 64-Bit-Entwicklungscomputer. 

Grüße, Pete

9
HaggardPete

Es tut mir leid, dass Sie eine zweite Antwort hinzugefügt haben. Wenn Sie jedoch 64-Bit- und 32-Bit-Clients auf demselben Computer installiert haben, kann dieses Problem ebenfalls auftreten.

Zwei Clients installiert

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

Kontrollieren Sie Ihre Pfadumgebungsvariable. Welcher Oracle-Client zuerst ist, wird vor einem anderen geladen.

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

Da sich mein 64-Bit-Oracle-Client an erster Stelle in PATH befindet, versucht VS.NET, es für Oracle Connections zu verwenden, und gibt Bad Image Exception aus.

  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"

Danach können Sie Oracle verbinden. Natürlich können Sie den 32-Bit-Client an erster Stelle setzen, aber ich bevorzuge den 64-Bit-Client vor 32-Bit für andere Anwendungen.

19
Atilla Ozgur

Nach dem Upgrade auf Windows 7 hatte ich den gleichen Fehler. Ich habe ihn behoben, indem ich das Plattformziel in x86 auf der Registerkarte "Erstellen" der Seite "Eigenschaften" in Visual Studio geändert habe

9
Keith Ketterer

Dasselbe Problem besteht möglicherweise auch in Visual Studio 2013 und dem 64-Bit-Oracle-Client (11- und 12-Version). Meine Lösung ist: 

a) Desktop-Projekt. Projekteigenschaften> Erstellen> Deaktivieren Sie das Kontrollkästchen "32-Bit bevorzugen".

b) ASP.NET-Projekt oder Website. Hauptmenü> WERKZEUGE> Optionen> Projekt und Lösungen> Webprojekte> Aktivieren Sie das Kontrollkästchen "64-Bit-Version von IIS Express für Websites und Projekte verwenden".

6
codemonkey

In meinem Anwendungspool in IIS7 habe ich 32-Bit-Unterstützung inFALSEgeändert. Das hat bei mir funktioniert. Ich habe es leicht gefunden. Prost :)

3
SharpCoder

Wenn Sie 64-Bit verwenden möchten, sehen Sie meine Antwort hier:
64-Bit-Oracle DataAccess-Konfiguration

Wenn Sie mit 32-Bit zufrieden sind, installieren Sie einfach die 32-Bit-Version von Oracle Data Access Components. Da der Entwicklungsserver von Visual Studio 32 Bit umfasst, treten keine Probleme auf.

0

Um dieses Problem schnell und einfach zu lösen, müssen Sie nur die folgenden Schritte befolgen:

  1. Installieren Sie ODACv11.2021Xcopy_x64. Führen Sie dazu die Datei install.bat aus, und überprüfen Sie "c:\Oracle" als erstellten Pfad.
  2. Kopieren Sie Ihren Netzwerkkonfigurationsordner [der den Admin-Ordner mit der Datei tnsnames.ora enthält] in Oracle 32bit nach "c:\Oracle".
  3. Der Pfad "c:\Oracle" wurde der Umgebungsvariable PATH hinzugefügt.

genießen

Beste Grüße, Eng. Nawaf H. Bin Taleb.

0
Nawaf

Ich bekam die gleiche Ausnahme und stellte fest, dass es beim Upgrade auf eine höhere MVC-Version als 2.0 aufgetreten ist.

Durch das Erstellen eines neuen Projekts in MVC 2.0 wurde das Problem behoben. 

0
thabet

Einfache Lösung: funktioniert für mich. Versuche dies.

Ich habe fast vier Stunden gebraucht, um die Lösung für das Problem mit BadImageFormatException zu finden.

Szenario: VS 2012 habe ich zum ersten Mal versucht, der Oracle-Datenbank ein Entitätsmodell hinzuzufügen. Ich wusste, dass es zwei Schritte gibt, um ein Modell für die Oracle-Datenbank hinzuzufügen: 

  1. Verbinden Sie die Oracle-Datenbank mithilfe des Server-Explorers (wobei die Verbindungszeichenfolge erstellt wird und die beim Hinzufügen des Modells verwendet werden kann)
  2. Fügen Sie das Modell mithilfe der vorhandenen Verbindungszeichenfolge hinzu (erstellt in Schritt 1).

Aber ich war in Schritt 1 selbst mit der Warnung BadImageFormatException betroffen und habe eine Lösung gefunden .Auflösung:

  1. Befolgen Sie die Anweisungen unter link und schließen Sie die Oracle-Client-Installation ab http://www.Oracle.com/technetwork/topics/dotnet/whatsnew/vs2012welcome-1835382.html
  2. Sobald die Installation erfolgreich abgeschlossen wurde, ist der einfache Schritt, z. Modell zum Projekt hinzufügen. Verwenden Sie hier die vorhandene Verbindungszeichenfolge aus der Dropdownliste und geben Sie userid/pwd an.

dann bist du bereit Modell zu benutzen :)

0