Laden...

BadImageFormatException bei Verwendung einer Assembly

Erstellt von lord_fritte vor 14 Jahren Letzter Beitrag vor 14 Jahren 28.835 Views
L
lord_fritte Themenstarter:in
553 Beiträge seit 2007
vor 14 Jahren
BadImageFormatException bei Verwendung einer Assembly

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?

F
10.010 Beiträge seit 2004
vor 14 Jahren

Und die Suche hat nichts gebracht?

Komisch, da diese Frage im zusammenhang mit SQLite hier schon oft beantwortet wurde.

479 Beiträge seit 2008
vor 14 Jahren

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

[Follow me on Twitter](http://twitter.com/blendingsky)
F
10.010 Beiträge seit 2004
vor 14 Jahren

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.

L
lord_fritte Themenstarter:in
553 Beiträge seit 2007
vor 14 Jahren

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

3.971 Beiträge seit 2006
vor 14 Jahren

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...

F
10.010 Beiträge seit 2004
vor 14 Jahren

Und ansonsten reicht es, das die startende Assembly als x86 Compiliert wurde,
da diese für die Runtime ausschlaggebend ist.