47 votes

Impossible de charger le fichier ou l'assemblage "Oracle.DataAccess" ou l'une de ses dépendances.

J'essaie d'exécuter cette application web. Je continue à obtenir cette erreur "Impossible de charger le fichier ou l'assemblage "Oracle.DataAccess" ou l'une de ses dépendances. Une tentative a été faite pour charger un programme dont le format est incorrect." Détails de l'exception : System.BadImageFormatException. "Impossible de charger le fichier ou l'assemblage "Oracle.DataAccess" ou l'une de ses dépendances. Une tentative a été faite pour charger un programme dont le format est incorrect." Voici les choses que j'ai déjà essayées.

  1. remplacement de toutes les dll oracle par des dll oracle 32 bits, c'est-à-dire 2.112.3.0

J'ai un client 32 bits installé sur une machine 64 bits. Le système d'exploitation est Windows 7.

  1. compiler chaque projet individuellement. J'ai supprimé toutes les dll des fichiers dépendants d'Oracle et j'ai ajouté les dll 2.112.3.0 individuellement, puis j'ai compilé chaque projet.

  2. Enregistrez la dll 32 bit sur GAC en utilisant cette déclaration gacutil /i %ORA_HOME4 \odp.net\bin\4\Oracle.DataAccess.dll

gacutil /i %ORA_HOME4% (en anglais) \asp.net\bin\4\oracle.web.dll

pour les deux déclarations ci-dessus, j'ai copié le gacutil.exe à partir de c : \Program Fichiers(x86) \Microsoft sdk \windows\v7.0A\Bin\NETFX4.0 Outils \X64 dans le lecteur C:\ et ensuite

J'ai exécuté les deux déclarations ci-dessus :

gacutil /i %ORA_HOME4% (en anglais) \odp.net\bin\4\Oracle.DataAccess.dll gacutil /i %ORA_HOME4% (en anglais) \asp.net\bin\4\oracle.web.dll lorsque j'ai exécuté les deux déclarations ci-dessus, je n'ai reçu aucun message, je les ai exécutées dans Dos Windows sous le privilège d'administrateur.

  1. J'ai également supprimé tous les fichiers ASP.net temporaires de cet emplacement.

c : \windows\Microsoft.Net\V4.0.30319\temporary Fichiers ASP.net J'ai également changé la cible de la plateforme de construction de l'application web en X86, à l'origine, elle était à "ANy CPU". Par frustration, j'ai également essayé de changer la cible de la plateforme en X64 et j'ai obtenu le message d'erreur suivant

" Cold not load file or assemble . webapp" ou une de ses dépendances. Une tentative a été faite pour charger un programme dont le format est incorrect.

Je n'ai pas installé IIS sur mon ordinateur. J'exécute cette application dans Visual Studio 2010 et je pense qu'elle utilisera l'IIS intégré qui est fourni avec Visual Studio.

J'ai passé de nombreuses heures à résoudre ce problème, mais j'obtiens toujours la même erreur, encore et encore.

0voto

J'avais besoin d'une version 64 bits de oracle.dataaccess.dll, mais cela posait des problèmes avec les autres bibliothèques que j'utilisais.

[BadImageFormatException : Impossible de charger le fichier ou l'assemblage 'Oracle.DataAccess' ou l'une de ses dépendances. Une tentative a été faite pour charger un programme avec un format incorrect].

J'ai suivi plusieurs étapes ci-dessus. En allant dans les paramètres avancés du pool de projets pour activer l'autorisation du 32 bits, cela a fonctionné, mais je n'étais pas satisfait de laisser cela comme ça, alors je l'ai réactivé.

Mon projet comportait également des références qui s'appuyaient sur Elmah y log4net références. J'ai téléchargé la dernière version de ces références et mon projet a pu se construire et s'exécuter correctement sans avoir à modifier le paramètre d'autorisation 32 bits des piscines.

0voto

abdul rehman kk Points 520

J'ai été confronté au même problème et je l'ai résolu en remplaçant l'ancien système. Oracle.DataAccess.dll avec de nouvelles Oracle.DataAccess.dll (qui sont fournis avec le client oracle lors de l'installation)

dans mon cas, le chemin de la nouvelle Oracle.DataAccess.dll est

  • E:\app\Rehman.Rashid\product\11.2.0\client_1\ODP.NET\bin

0voto

Dans mon cas, j'avais une application console, j'ai juste décoché Prefer 32-bit dans l'onglet Build projet properties et ensuite j'ai ajouté ceci à mon app.config :

<runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
                <assemblyIdentity name="Oracle.DataAccess" publicKeyToken="89b483f429c47342" culture="neutral" />
                <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="2.112.1.0" />
            </dependentAssembly>
        </assemblyBinding>
    </runtime>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X