CorFlags.exe, System.Data.SQLite.dll et BadImageFormatException
-
25-10-2019 - |
Question
rel="nofollow"> CorFlags.exe contre System.Data.SQLite.dll
de http://sqlite.phxsoftware.com/ produit la sortie suivante.
Version : v2.0.50727
CLR Header: 2.5
PE : PE32
CorFlags : 24
ILONLY : 0
32BIT : 0
Signed : 1
Comme vous pouvez le voir, 32BIT
n'est pas spécifié et PE
est égal à PE32
. Selon Passer de 32 bits à 64- le développement d'applications bits sur .NET Framework , cela signifie que l'ensemble est Any CPU . Cependant, en utilisant l'ensemble à partir d'un résultat d'application 64 bits en une erreur:
System.BadImageFormatException: Could pas fichier de chargement ou de montage « System.Data.SQLite » ou un de ses dépendances. Tentative de charger un programme avec un incorrect format. Nom de fichier: 'System.Data.SQLite'
Si CorFlags.exe rapporte Any CPU , pourquoi ne se produit l'exception? Est l'assemblée incorrectement marqué par 32BIT: 0
?
Je sais qu'il ya un trop disponible version 64 bits, je veux juste savoir ce qui est à l'origine de l'erreur.
La solution
Le fichier System.Data.SQLite.dll que vous utilisez est un mixtes mode de montage , ce qui signifie qu'il est pas un pur code .NET (voir aussi le « ILONLY: 0 » drapeau), il contient également le code non géré la machine, qui ne peut pas être « Any CPU ». Alors, que la DLL contient 32 bits du code natif, il peut être chargé que dans le processus 32 bits, sinon un BadImageFormatException se produit.
Autres conseils
Si vous téléchargez le fichier SQLite-1.0.66.0-binaries.zip
de sourceforget.net alors il contient un répertoire bin / x64 avec un fichier System.Data.SQLite.dll
qui est ce que vous recherchez.
Il a également un répertoire trop .. Itanium
Le URL est: