it-swarm.com.de

Führen Sie den Oracle-Client im 32-Bit-Modus auf einem 64-Bit-Computer aus

Ich bin gerade von einem 32-Bit-Windows 7-Desktop auf einen 64-Bit-Windows 7-Laptop umgestiegen. Wir haben ein C # -Programm entwickelt, das ungefähr 60 Projekte innerhalb der Lösung enthält. Während ich versuche zu bauen, erhalte ich folgende Fehlermeldung:

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

Natürlich ist der Fehler ziemlich selbsterklärend und ich versuche, meine gesamte Lösung im 32-Bit-Modus zu laden. Ich habe jedes einzelne Projekt durchlaufen und die Zielplattform auf x86 gesetzt, aber ich bekomme immer noch diesen Fehler. Ich habe Google gesucht und unzählige verschiedene Ansätze gesehen, aber ich kann dieses Problem nicht lösen. Wie kann ich am besten sicherstellen, dass mein Projekt auf einer 64-Bit-Maschine im 32-Bit-Modus ausgeführt wird?

Ich verwende Visual Studio 2008. Ich erwäge derzeit ein Downgrade auf 32-Bit, möchte dies aber unbedingt vermeiden.

10
Joseph

Ich habe festgestellt, dass Sie den 32-Bit-Oracle-Client installieren müssen (Sie können das Installationsprogramm herunterladen von seiner Website herunterladen), auch wenn Sie auf einem 64-Bit-Computer ausgeführt werden.

Darüber hinaus sprachen die Leute während der Diskussionen über den 32-Bit-Modus usw. So können Sie das für eine gehostete IIS 7-Anwendung überprüfen/einstellen. Sie sollten dies nicht ändern müssen, aber ich habe hier der Vollständigkeit halber Bezug genommen.

  • Starten Sie IIS 7 und erweitern Sie den Servernamenknoten. 
  • Klicken Sie auf den Knoten Application Pools und suchen Sie den verwendeten Pool.
  • Klicken Sie im rechten Fensterbereich auf Erweiterte Einstellungen ....
  • Aktivieren Sie im Popup-Fenster die Option Enabled 32-Bit Applications, die dritte Option von oben.
11
Belogix

Sie müssen Ihre Haupt-EXE-Datei ändern, um nur als 32-Bit ausgeführt zu werden. Sie können dies in Visual Studio tun - ändern Sie einfach Platform target von "Any CPU" in "x86".

Wenn dies nicht möglich ist, verwenden Sie corflags.exe, wodurch ein vorhandenes Exe-Programm eine 32-Bit-Anwendung wird.

5
Piotr Stapp

Ich habe mit diesem Problem seit Monaten zu kämpfen und es endlich gelöst. Ich denke, alle Beiträge sind hilfreich, aber ich hatte ein fehlendes Stück. Ich hatte kein Microsoft ODBC für die Einrichtung einer Oracle-Instanz für Benutzer-DSN oder System-DSN. Ich arbeite an einem Windows 8-Computer. Für mich musste ich also zur allgemeinen Fenstersuche gehen und ODBC eingeben und den ODBC -Datenquellen-Administrator (32-Bit) öffnen. Überprüfen Sie auf der Registerkarte Benutzer-DSN oder auf der Registerkarte System-DSN, ob Sie über ein Microsoft ODBC für Oracle-Setup verfügen. Wenn nicht, klicken Sie auf Hinzufügen und wählen Sie Microsoft ODBC für Oracle. Füllen Sie die Daten für Ihre Datenquelle aus und klicken Sie auf OK. Stellen Sie sicher, dass Sie Ihren Computer neu starten, und das hat letztendlich für mich funktioniert. Hoffe das hilft einigen von euch. 

2
zeroend

In meinem Fall wurde ein 64-Bit-Oracle-Client auf meinem Computer installiert, der jedoch immer noch den gleichen Fehler anzeigt. Ich habe also analysiert, dass in meiner Anwendung Rechtsklicken Sie auf Anwendung - gehen Sie zu -> Eigenschaften -> Registerkarte Web Und deaktivieren Sie die Option "Verwenden IIS Express", wenn Sie local IIS Webserver . Problem wurde gelöst.

0
user3906334

Sie müssen Ihre Haupt-EXE-Datei ändern, um nur als 32-Bit ausgeführt zu werden. Sie können dies in Visual Studio tun - ändern Sie einfach das Plattformziel von "Beliebige CPU" in "x86" . https://msdn.Microsoft.com/de-de/library/ms185328.aspx

0
user7597235