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?":)
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%
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.
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
Tags und Links c# nhibernate