CorFlags.exe, System.Data.SQLite.dll e BadImageFormatException
-
25-10-2019 - |
Domanda
CorFlags.exe contro System.Data.SQLite.dll
da http://sqlite.phxsoftware.com/ produce l'uscita seguente.
Version : v2.0.50727
CLR Header: 2.5
PE : PE32
CorFlags : 24
ILONLY : 0
32BIT : 0
Signed : 1
Come si può vedere, 32BIT
non è specificato e PE
è pari a PE32
. Secondo Il passaggio da 32 bit a 64 lo sviluppo di applicazioni bit su .NET Framework , questo significa che l'assemblea è Qualsiasi CPU . Tuttavia, utilizzando il gruppo da un risultati applicativi 64 bit in errore:
System.BadImageFormatException: Could Non file di caricamento o di montaggio 'System.Data.SQLite' o uno dei suoi dipendenze. Un tentativo è stato fatto per caricare un programma con un errato formato. Nome del file: 'System.Data.SQLite'
Se CorFlags.exe sta riportando Qualsiasi CPU , il motivo per cui si verifica l'eccezione? È l'assemblea in modo non corretto segnato con 32BIT: 0
?
So che esiste una versione a 64 bit disponibile anche, sto solo voglio sapere che cosa sta causando l'errore.
Soluzione
Il file System.Data.SQLite.dll che si sta utilizzando è un mista modalità di assemblaggio , il che significa che non è un codice puro NET (si veda anche la: flag “ILONLY 0”), contiene anche codice macchina non gestito, che non può essere “Any CPU”. Così, come la DLL contiene 32 bit codice nativo, può essere caricato solo nel processo a 32 bit, altrimenti un BadImageFormatException si verifica.
Altri suggerimenti
Se si scarica il file SQLite-1.0.66.0-binaries.zip
da sourceforget.net allora questo contiene un bin / x64 directory con un file System.Data.SQLite.dll
che è quello che state cercando.
Essa ha anche una directory Itanium troppo ..
Il URL è: