NHibernate + SqlServerCE

8

Ich habe ein Problem mit dieser Ausnahme:

%Vor%

Ich habe alles versucht. Ich habe viel gegoogelt.

System.Data.SqlServerCe.dll befindet sich im Debug-Verzeichnis. Ist lokal referenziert, ist das nicht GAC. Ich habe lokale Kopie richtig gesetzt. Im Debug-Verzeichnis ist alles andere sql * .dll erforderlich. Ich habe versucht, x86 Kompilierung, aber nicht sehr.

Dies ist meine Nhibernate-Konfiguration:

%Vor%

NHibernate Version 3.0 Beta 1, SqlServerCe Version 3.5 SP1

Meine Idee: Nhibernate sieht immer noch in GAC, weil ein SqlServerCe installiert hatte, nach der Deinstallation startet das Problem. Wie kann ich zu NHibernate sagen: "Bitte schauen Sie diese DLL?":)

    
Simon 07.11.2010, 13:07
quelle

4 Antworten

11

Sie (oder die NHibernate-DLL) verweisen auf eine andere Version der System.Data.SqlServerCe-DLL im Projekt als erwartet. Zum Beispiel verweist NHibernate möglicherweise auf die .NET 3.5-Version der DLL, aber Sie haben die .NET 4.0-Version der DLL im Verzeichnis GAC oder local bin. Sie können das .NET-Framework anweisen, eine bestimmte AssemblyBinding zu verwenden, um das Problem zu beheben. Geben Sie Folgendes in Ihre Konfigurationsdatei ein, um es zu beheben.

%Vor%

    
John C 29.10.2011, 07:42
quelle
0

Versuchen Sie, die Assembly mit Assembly.LoadFile mit dem vollständigen Pfad zur DLL zu laden, bevor NHibernate sie anfordert.

NHibernate lädt die Assembly mit Assembly.Load("NHibernate.Driver.SqlServerCeDriver") , was wahrscheinlich in der GAC aussieht. Wenn Sie das Laden aus einer Datei erzwingen, wird Assembly.Load bemerken, dass es bereits geladen ist und wählen Sie das geladene aus.

    
Pieter van Ginkel 07.11.2010 13:26
quelle
0

Sie können das Kennzeichen für die verwendungsspezifische Version in den VS-Eigenschaften für diese Referenz ebenfalls auf false setzen und die lokale Kopie auf true setzen

    
user1453449 13.09.2012 09:47
quelle
-1

Ich wechselte zu sqllite. Das ist Arbeit. Vielleicht erwägen Sie, den Byte-Code zu ändern. Ich habe Spring-Byte-Code verwendet, vielleicht ist Castle besser ....

    
Simon 07.12.2010 10:26
quelle

Tags und Links