Zuerst die gute Nachricht:
Nachdem das Entwickeln auf dem alten Rechner etwas langsam geworden ist, durfte ein neues System her.
Das mit einem 64Bit Windows 2008 und alles ist schnell.
Alles in allem eine Konfiguration die ich zum Entwickeln absolut empfehlen kann. Insbesondere Resharper in Verbindung mit WPF macht wieder Spaß. Auch ist die Hürde mal eben den Development Stack zu Debuggen deutlich gesunken.
Nun die schlechte Nachricht:
Der Umstieg auf 64Bit schaft eine neue Welt von Problemen.
Um mit den Worten von Walter zu sprechen: "You are entering a world of pain":
Für ein Projekt setzen wir NHibenate mit SQLite ein.
NHibernate lädt den ADO-Treiber über "Type.GetType(string)"
Das ganze funktioniert für die Tests wunderbar. Auch im WPF Design Mode wird die Datenbank korrekt geladen. Nur beim Starten den Anwendung lautet die Fehlermeldung von "Type.GetType(string)"
System.BadImageFormatException
Die eigentliche Fehlermeldung kommt jedoch nicht hoch und wird von NHibernate 2 Mal "gecatcht":
Besonders verwirrend wie gesagt, die Tests und selbst im WPF-Design Mode wird die Datenbank korrekt angesprochen.
Nach langem Debuggen, Haare raufen (habe jetzt fast ne Glatze) und googlen kam die zündende Idee den SQLite Driver selbst zu bauen und auf die korrekten CPU Einstellungen zu achten:
Und siehe da, Problem gelöst.
Ein etwas fader Beigeschmack bleibt. Die Tools und Fehlermeldungen um das Problem zu identifizieren sind obskur. Wie läßt sich sehen ob eine Anwendung in 32Bit oder 64Bit ausgeführt wird.
Vermutungen: Der Unittestrunner von Resharper und NUnit arbeiten mit 32Bit. Genauso der WPF Designer.
Hier erstmal Stopp: Es bleiben viele Fragen zum Umstieg von der 32Bit auf die 64Bit Welt und die Wage Hoffnung, das solche Probleme die Ausnahme bleiben.