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.

Était-ce utile?

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:

http: // sourceforge .net / projets / sqlite-dotnet2 / fichiers / SQLite% 20pour% 20ADO.NET% 202,0 / 1.0.66.0 /

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top