Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
BadImageFormatException bei Verwendung einer Assembly
lord_fritte
myCSharp.de - Member



Dabei seit:
Beiträge: 558

Themenstarter:

BadImageFormatException bei Verwendung einer Assembly

beantworten | zitieren | melden

Hallo, ich möchte mit Gentle.NET ein SQLite Datrenbank system realisieren, aber ich keomme immer eine BadImageFormatException:
Zitat
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?
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von lord_fritte am .
private Nachricht | Beiträge des Benutzers
FZelle
myCSharp.de - Experte



Dabei seit:
Beiträge: 10074

beantworten | zitieren | melden

Und die Suche hat nichts gebracht?

Komisch, da diese Frage im zusammenhang mit SQLite hier schon oft beantwortet wurde.
private Nachricht | Beiträge des Benutzers
markus111
myCSharp.de - Member

Avatar #avatar-3108.png


Dabei seit:
Beiträge: 520
Herkunft: Henstedt-Ulzburg

beantworten | zitieren | melden

Zitat von lord_fritte
Zitat
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
private Nachricht | Beiträge des Benutzers
FZelle
myCSharp.de - Experte



Dabei seit:
Beiträge: 10074

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
lord_fritte
myCSharp.de - Member



Dabei seit:
Beiträge: 558

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
kleines_eichhoernchen
myCSharp.de - Member

Avatar #avatar-2079.jpg


Dabei seit:
Beiträge: 4055
Herkunft: Ursprünglich Vogtland, jetzt Much

beantworten | zitieren | melden

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...
private Nachricht | Beiträge des Benutzers
FZelle
myCSharp.de - Experte



Dabei seit:
Beiträge: 10074

beantworten | zitieren | melden

Und ansonsten reicht es, das die startende Assembly als x86 Compiliert wurde,
da diese für die Runtime ausschlaggebend ist.
private Nachricht | Beiträge des Benutzers