Als technologiebegeisteter Mensch lud ich mir kürzlich, wie wahrscheinlich außer mir noch 100te andere, Infragistics NetAdvantage for WPF 2007 Vol 2 runter, um Infragistics neueste Technologie zu evaluieren.
Leider kam bereits beim öffnen der Beispielsapplikation “xamFeatureBrowser” die erste Enttäuschung. Die Applikation zeigte nämlich nicht Infragistics neueste Features, sondern präsentierte statt dessen den relativ langweiligen Windows-Fehlerreportingdialog:
Eine kurze Rückfrage bei meinem Kontakt zu Infragistics ergab, dass das Problem anscheinend nur unter “nicht englischen Betriebssystemen” auftritt.
Um der Sache nun auf den Grund zu gehen, öffnete ich die xamFeatureBrowser Solution unter Visual Studio 2005 und warf den Debugger an. Sofort nach dem Start wurde mir folgende Meldung mit anschließender Exception um die Ohren geworfen:
System.IO.IOException was unhandled
Message="Cannot locate resource \"app.xaml\"."
Anschließend stürzte die Applikation wieder ab. Eine kurze Recherche im Internet ergab, dass das Problem mit .NET 3.0 Solutions zusammen hängt, die unter Visual Studio 2008 Beta 1 gespeichert und später unter Visual Studio 2005 wieder geöffnet wurden. Einen Einfluss auf die von Infragistics ausgelieferte kompilierte Version der Anwendung sollte diese Situation jedoch nicht haben.
Um dem Fehler also auf die Spur zu kommen, warf ich als nächstes die Windows Debugging Tools an. Hier bekam ich die recht interessante Meldung, dass er für die angegebene Kultur keine Ressourcen finden kann. Dieses Verhalten würde auch zum Phänomen passen, dass der xamFeatureBrowser nur unter englischen Betriebssystemen läuft, da für die englische Kultur Ressourcen vorhanden sind.
0:000> .loadby sos mscorwks 0:000> !pe *** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll - PDB symbol for mscorwks.dll not loaded Exception object: 01429598 Exception type: System.Resources.MissingManifestResourceException Message: Für die angegebene Kultur oder die neutrale Kultur konnten keine Ressourcen gefunden werden. Stellen Sie sicher, dass xamFeatureBrowser.g.resources beim Kompilieren richtig in die Assembly xamFeatureBrowser eingebettet wurde, oder dass die erforderlichen Satellitenassemblys geladen werden können und vollständig signiert sind.
Die Lösung
Auf meinem System konnte ich das Problem wie folgt lösen:
- Öffnen der Solution. Diese lag bei mir unter: “C:\Users\Public\Documents\Infragistics\NetAdvantage for WPF 2007 Vol. 2\Samples\xamFeatureBrowser”
- Umschalten der Solution Konfiguration von “Debug - Full Trust” auf “Release”. Dieser Schritt ist eventuell nur unter VS 2005 notwendig. Zumindest kommt dann keine Meldung mehr, dass die App.xaml fehlt.
- Öffnen der App.xaml.cs und hinzufügen des folgenden Konstruktors:
public App()
{
CultureInfo objCI = new CultureInfo("en-US");
Thread.CurrentThread.CurrentCulture = objCI;
Thread.CurrentThread.CurrentUICulture = objCI;
}
Diesen Tipp bekam ich übrigens von heroic im Infragics Forum 4. Ändern der Eigenschaften für die Datei “TableOfContents.xml”. Die Build Action muss auf Content und die Copy to Output Directory auf Copy always gesetzt werden. 5. Starten des Projekts :-)
Bleibt nun zu hoffen, dass Infragistics den Bug in der nächsten Version behebt …