André Krämers Blog

Lösungen für Ihre Probleme

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:

3ndmessage

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:

1stmessage

System.IO.IOException was unhandled
Message="Cannot locate resource  \"app.xaml\"."

2ndmessage

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:

  1. Öffnen der Solution. Diese lag bei mir unter: “C:\Users\Public\Documents\Infragistics\NetAdvantage for WPF 2007 Vol. 2\Samples\xamFeatureBrowser”
  2. 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. projectconfiguration
  3. Ö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. toc5. Starten des Projekts :-) xambrowser

Bleibt nun zu hoffen, dass Infragistics den Bug in der nächsten Version behebt …