Ich verwende den neuesten NHibernate 2.1.0Beta2. Ich versuche Einheitentest mit SQLite und lasse die Konfiguration wie folgt einrichten:
%Vor%Wenn ich versuche, es auszuführen, erhalte ich den folgenden Fehler:
%Vor%Es sieht also so aus, als müsste ich direkt auf die Assembly verweisen. Wie würde ich das machen, damit ich diesen Fehler nicht mehr bekomme?
Ich habe die neueste Versammlung von hier heruntergeladen: Ссылка .
Führen Sie 64-Bit-Windows aus?
Als ich mich in Google umgesehen habe, habe ich in mehreren Beiträgen gesehen, dass die SQLite-DLL-Datei für x86 und nicht für x64 erstellt wurde.
Siehe diesen Beitrag: Ссылка
Bearbeiten: Ich bin mir nicht sicher, wann, aber ich habe heute festgestellt, dass die neuesten Versionen von System.Data.SQLite
die x64-DLL enthalten. Die x64-DLL ist in \bin\x64
.
Nachdem ich den Verweis auf die System.Data.SQLite-Assembly hinzugefügt hatte, musste ich copy local auf true setzen (wähle den Assembly-Verweis in VS und gehe zu den Eigenschaften), damit die Assembly in das bin-Verzeichnis kopiert wird.
>Ich hatte das gleiche Problem, und die obigen Lösungen haben für mich nicht geklappt. Ich denke, System.Data.SQLite hat sich seitdem geändert.
Beachten Sie, dass dieses Problem spezifisch für einen Fall ist, der alle der folgenden Kriterien berücksichtigt:
Dieser Konfigurationsabschnitt in meiner web.config (oder app.config für meine Komponententests) hat es zum Laufen gebracht. Ich musste die Versammlung qualifizieren, um sicher zu gehen, dass er richtig lädt.
%Vor%Irgendwo in seiner inneren Umgebung erstellt NHibernate beim Assemblieren mit gescannten Assemblys ein Assembly-Objekt, das seinen Teilnamen als Zeichenfolge "System.Data.SQLite" verwendet. Irgendwie wurde die x86-Version der Assembly geladen.
Die obige Konfiguration stellte sicher, dass die Verwendung des partiellen Namens zum Laden einer Assembly die x64-Version bereitstellt.
Tags und Links unit-testing sqlite nhibernate