Hallo, ich möchte mit Gentle.NET ein SQLite Datrenbank system realisieren, aber ich keomme immer eine BadImageFormatException:
Die Datei oder Assembly "System.Data.SQLite, Version=1.0.48.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" oder eine Abhängigkeit davon wurde nicht gefunden. Es wurde versucht, eine Datei mit einem falschen Format zu laden.
Ich verstehe nicht was der von mir will????
Wo kann ich eigentlich angeben ob ich eine 64 oder 32 Bit anwendungen haben möchte?
Und die Suche hat nichts gebracht?
Komisch, da diese Frage im zusammenhang mit SQLite hier schon oft beantwortet wurde.
Die Datei oder Assembly "System.Data.SQLite, Version=1.0.48.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" oder eine Abhängigkeit davon wurde nicht gefunden. Es wurde versucht, eine Datei mit einem falschen Format zu laden.
Hallo,
so eine Exception bekomme ich immer, wenn ich eine Referenz (Dll) umbenenne, und sie dann hinzufüge.
Also zB. hallo.dll umbenannt in hallo1.dll, und diese als Referenz hinzugefügt habe.
mfg.
Markus111
In diesem fall ist es aber so, das die SQLite DLL einen Nativen Teil hat, und der
ist entweder für 32Bit oder 64Bit compiliert.
Nimmt man die "Falsche" gibt es eben diese Fehlermeldung.
Kann man irgendwie heraus finden, welche Datei das falsche Format hat?
Ps. kann man irgendwo konfigurieren dass alle Projekte imemr als X86 Kompiliert werden, der Kompiler steht immer auf AnyCPU
es muss nicht unbedingt eine native Datei sein. Es reicht schon aus, wenn eine Assembly explizit mit x86 compiliert wurde und in deiner Anwendung "any cpu" als Platform gewählt wurde.
Wenn es von der jweiligen Assembly eine 32 oder 64Bit Assembly gibt, kannst du mit folgendem Beispiel die entsprechend richtige Version laden:
Using Side-by-Side assemblies to load the x64 or x32 version of a DLL
Weiterhin:
How to determine if .NET assembly was built for x86 or x64?
How to find if native dll is compiled as x64 or x86?
Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...
Und ansonsten reicht es, das die startende Assembly als x86 Compiliert wurde,
da diese für die Runtime ausschlaggebend ist.