none
Heruntergeladene Projektvorlage WPF Notification Area Application (VB) hat Fehler in XAML Designer RRS feed

  • Frage

  • Hallo,

    Ich habe mir die Vorlage 'WPF Notification Area Application (VB)' im Visual Studio bei den Projektvorlagen heruntergeladen (ist frei und von Microsoft), danach habe ich ein neues Projekt mit dieser Vorlage geöffnet und bekam im XAML-Designer eine Fehlermeldung, dass er das Fenster nicht anzeigen kann da das Assamply oder eine Abhängigkeit fehlen würde. Das Projekt ließ sich aber starten und danch konnte auch das Fenster eingelesen werden. Wie kann ich nun erreichen, dass das Fenster auch gleich bei der Projekteröffnung vorhanden ist.

    Danke und Gruß Dieter

    Montag, 21. Juni 2010 19:48

Antworten

  • Hi Olaf,

    ist nicht schlimm. Ich werde die Vorlage nach dem ich sie Compiliert habe als neue Projektvorlage Exportieren, das müsste zu einem guten Ergebnis führen und danach werde ich einfach die Originalvorlage von Microsoft wieder Deinstallieren denn zwei gleiche Vorlagen brauche ich nicht. Dennoch danke dass du dir die Zeit genommen hast.

    Gruß und noch ein schönes Wochenende

    Dieter

     

    Sonntag, 27. Juni 2010 18:03

Alle Antworten

  • Hi OptipleksO1,
    wenn ein XAML auf eine Assembly zugreift, die nicht übersetzt vorliegt, kommt natürlich ein Fehler. Das ist beispielsweise der Fall, wenn der XAML in der gleichen Assembly liegt wie der benötigte Code. Deshalb liebe ich auch MVVM so sehr, da man dort alles entkoppeln kann.

    --
    Viele Gruesse
     
    Peter
    Montag, 21. Juni 2010 20:22
  • Hallo Peter,

    Das habe ich jetzt nicht verstanden. Was ist MVVM ? ich dachte immer, dass der XAML-Code für das Fenster verantwortlich ist und wenn der Codebehind ebenfalls ok ist, dass dann das Fenster angezeigt wird, und scheinbar muss der Code OK sein, sonst könnte ich das Projekt nicht starten. Auch so scheint alles zu stimmen, da sonst alles einwanfrei funktioniert. Wenn es nicht von Microsoft wäre würde ich sagen OK was soll das, da hat er eben was vergessen, aber so kann ich nicht glauben, dass Microsoft sowas als VORLAGE veröffentlicht.

    Viele Grüße Dieter

    Montag, 21. Juni 2010 20:52
  • Hi OptipleksO1,

    MVVM ist die Abkürzung für Model-View-ViewModel-Entwurfsmuster, s. dazu auf meiner Homepage unter:

     

    <Tipps und Tricks - informtools - Tipp 400>

    http://www.informtools.de/kb.aspx?id=400

    Der Designer, der den XAML-Code "interpretiert" kennt keinen CodeBehind. Das, was da als CodeBehind dargestellt wird, ist eine Klasse, wie jede andere auch, die in eine Assembly zu kompilieren ist, die dann mit dem entsprechenden xmlns dem Designer bekannt gegeben wird. Diese Assembly muss erst einmal vorhanden sein, d.h., es muss mindestens ein fehlerfreier übersetzungslauf abgearbeitet worden sein. Diese Technologie wird seit Anfang an genutzt, z.B. für User Controls oder in Web-Anwendungen. Lediglich der Windows-Forms-Designer hat den Code interpretiert, der für das Design verantwortlich war, da es keine andere Beschreibung der Oberfläche gab.

    --

    Viele Grüße,

    Peter

    Dienstag, 22. Juni 2010 06:08
  • Hi Dieter,

    MVVM (Model-View-ViewModel) ist, wie Peter bereits schrieb, ein sog. "Pattern" (es gibt noch diverse andere, unter den bekanntesten u.a. z.B. MVP = Model-View-Presenter, quasi der "Vater" von MVVM und MVC = Model-View-Controller, beliebt in Web-Anwendungen).

    Über die dem MVVM-Pattern eigene Entkoppelung von Objekten/Code im User-Interface einerseits und der Business-Logik andererseits ist es einfacher, Anwendungen dergestalt zu implementieren, dass z.B. bei einem Wechsel der Zielplattform (z.B. Windows -> Web) nur der UI-Bereich neu erzeugt werden muss. Außerdem können Unit-Tests (= Code für das automatisierte Austesten von Programmlogik) geschrieben/angewendet werden, die quasi Benutzereingaben (UI-Interaktion) simulieren können; das wiederum ist ohne jene Entkoppelung schlichtweg nicht möglich.

    Lies Dir am besten einfach mal Josh Smith's Artikel im MSDN Magazine (in deutschen Übersetzung hier ) dazu durch - der veranschaulicht die wesentlichen Aspekte des Patterns.


    Cheers,
    Olaf
    http://blogs.intuidev.com
    Dienstag, 22. Juni 2010 09:10
  • Hallo Peter, Hallo Olaf,

    also fehlen bei der Vorlage die entsprechenden Assambly’s für die Codebehind Dateien. Da ich nicht weis wie ich diese Assamblys für die Vorlage erstellen und in die Vorlage integrieren (sind alles nur Zip-Dateien mit Wizard usw.) soll, ist es am besten ich erstelle aus der Vorlage ein Projekt, Starte dieses durch und exportiere dieses Projekt als Projektvorlage danach sollte diese neue Vorlage funktionieren, oder habe ich da einen Denkfehler drin?  Oder gibt es noch einen anderen Weg?

     

    Ihr meint nicht zufällig Observer Pattern also einen Beobachter integrieren der auf Veränderungen durch Usereingaben es an die entsprechenden Komponenten/Controls im Code weitergibt so dass alle den selben Inhalt haben? Dieses Verfahren kenne ich von Delphi. Aber erst muss ich mit WPF und VB besser auskennen bevor ich mich an solche Sachen wage.(Josh Smith Artikel und Peters MVVM werden ich mir noch genauer durchlesen, dafür braucht man Ruhe und Zeit damit man da richtig durchsteigt)

     

    Gruß Dieter

     

    Dienstag, 22. Juni 2010 11:03
  • Hi Dieter,

    habe mir gerade nochmal Deine urspr. Frage durchgelesen - darin ging's ja gar nicht um MVVM. :-)

    also fehlen bei der Vorlage die entsprechenden Assambly’s für die Codebehind Dateien. Da ich nicht weis wie ich diese Assamblys für die Vorlage erstellen und in die Vorlage integrieren (sind alles nur Zip-Dateien mit Wizard usw.) soll, ist es am besten ich erstelle aus der Vorlage ein Projekt, Starte dieses durch und exportiere dieses Projekt als Projektvorlage danach sollte diese neue Vorlage funktionieren, oder habe ich da einen Denkfehler drin?  Oder gibt es noch einen anderen Weg?

    Mit anderen Worten: für Deine aktuelle Frage ist MVVM bedeutungslos. Der Umstand, dass Du einen Fehler nach der ersten Verwendung der Projektvorlage bekommen hast, kann durchaus daran liegen, dass ein initialer Build fehlte. Soll heißen, wenn Du nach Laden eines Projektes (gilt vor allem für z.B. Beispiel-Projekte, die Du aus dem Web hast) Fehler angezeigt bekommst, lass erst einmal den Compiler darüberlaufen - damit erledigen sich viele Probleme ganz einfach von selbst.

    Ansonsten poste doch mal die Fehlermeldung, die Du bekommst, sofern regelmäßig beim Laden des Projektes eine auftaucht.

    Ihr meint nicht zufällig Observer Pattern also einen Beobachter integrieren der auf Veränderungen durch Usereingaben es an die entsprechenden Komponenten/Controls im Code weitergibt so dass alle den selben Inhalt haben? Dieses Verfahren kenne ich von Delphi. Aber erst muss ich mit WPF und VB besser auskennen bevor ich mich an solche Sachen wage.(Josh Smith Artikel und Peters MVVM werden ich mir noch genauer durchlesen, dafür braucht man Ruhe und Zeit damit man da richtig durchsteigt)

    Das ObserverPattern ist einfach ein weiteres aus der Reihe möglicher Pattern, aber nein, das hat mit MVVM nicht das geringste zu tun. Unter WPF findest Du allerdings eine quasi-Ausprägung des OP in Form der INotifyPropertyChanged / INotifyCollectionChanged Interfaces. Auch würde ich anraten, dass Du erst einmal versucht, ein Grundverständnis von VB (oder was auch immer) zu bekommen, bevor Du Dich an die Pattern wagst - zumindest, wenn Du nicht gleich in die Vollen einsteigst und gleich an einem produktiven Projekt arbeitest. Aber das sind nur meine €0.02. :-)


    Cheers,
    Olaf
    http://blogs.intuidev.com
    Dienstag, 22. Juni 2010 16:33
  • Hi Olaf,

    du hast vollkommen recht, dass ich mich im Augenblick noch mit den Grundkenntnissen Probleme habe. Ich bin eben was VS und WPF betrtifft ein absoluter New Comer. Mit dem Code in VB habe ich nicht so viele Probleme da die Syntax der von Delphi sehr ähnlich ist. Wenn du meine Posts durchliest, so habe ich schon beschrieben, dass sich das Projekt compilieren lässt und dass danach auch das Fenster im XAML-Designer erscheint, auch das Verhalten des Programms ist korrekt, hier treten auch keine Fehler mehr auf. Auch die Fehlermeldung habe ich schon beschrieben (Das Fenster kann nicht anzeigen werden da das Assamply oder eine Abhängigkeit fehlt). Es liegt scheinbar nur an den Assemblies die beim Projekt fehlen, nur wie kann ich diese in die Vorlage bekommen

     

    Gruß Dieter

     

     

    Mittwoch, 23. Juni 2010 07:08
  • Hi Dieter,

    hmm. Soweit ich Dich verstanden hatte, war alles i.O., wenn Du erst einmal kompiliert hattest. Ist das jetzt der Fall, oder nicht ..? Was das Beschreiben der Fehlermeldung anbelangt - der Originaltext und/oder ggf. InnerException/StackTrace müssten schon her, bzw. zumindest um was für Assemblies es denn geht. Andererseits verstehe ich Dein Problem nicht, wenn Du nach dem Kompilieren das Fenster auch im Designer anzeigen lassen kannst; dann ist doch eigentlich alles in Ordnung!?


    Cheers,
    Olaf
    http://blogs.intuidev.com
    Mittwoch, 23. Juni 2010 15:50
  • Hallo Olaf

    genau so ist es, nach den ersten compilieren ist alles ok.

     

    Hier sind die Fehlermedungen

     

    Fehler  1          Die Metadaten für die Assembly "NotificationAreaApplication1" konnten nicht geladen werden. Möglicherweise wurde diese Assembly aus dem Web heruntergeladen. Siehe http://go.microsoft.com/fwlink/?LinkId=179545. Fehler: Die Datei oder Assembly "NotificationAreaApplication1" oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden.

    C:\Users\Dieter\AppData\Local\TemporaryProjects\NotificationAreaApplication1\

    Window1.xaml           1          1          NotificationAreaApplication1

     

    Fehler  2          Der l:NotificationAreaIcon-Typ wurde nicht gefunden. Alle Assemblyverweise müssen vorhanden sein, und alle Assemblys, auf die verwiesen wird, müssen erstellt worden sein.

    C:\Users\Dieter\AppData\Local\TemporaryProjects\NotificationAreaApplication1\

    Window1.xaml           8          10        NotificationAreaApplication1

     

    Fehler  3          Der NotificationAreaIcon-Typ enthält keine anfügbare MenuItems-Eigenschaft.

    C:\Users\Dieter\AppData\Local\TemporaryProjects\NotificationAreaApplication1\

    Window1.xaml           12        14        NotificationAreaApplication1

     

    Wobei der angegebene Link nicht existiert und der Pfad (C:\Users\Dieter\AppData....) im Fenster von den Fehlermeldung nicht zu sehen ist. Ich war ganz erstaunt als ich ihn durch Copy und Past hier entdeckte.

     

    Was ich erreichen wollte habe ich in meinem ersten Post bereits beschrieben.

     

    Wie kann ich nun erreichen, dass das Fenster auch gleich bei der Projekteröffnung vorhanden ist.

     

    Ich wollte die Vorlage in soweit eben verbessern. Natürlich kann man auch mit der jetzigen Situation leben. Ich dachte auch nicht, dass das ein großes Problem ist. Denn scheinbar gibt es diese Fehler bei Downloads schon länger.

     

    Ich hoffe ich gehe dir mit meiner Fragerei nicht auf die Nerven!

    Danke und Gruß Dieter

     

    Mittwoch, 23. Juni 2010 17:44
  • Hi Dieter,
    Hier sind die Fehlermedungen

     

    Fehler  1          Die Metadaten für die Assembly "NotificationAreaApplication1" konnten nicht geladen werden. Möglicherweise wurde diese Assembly aus dem Web heruntergeladen. Siehe http://go.microsoft.com/fwlink/?LinkId=179545. Fehler: Die Datei oder Assembly "NotificationAreaApplication1" oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden.

    C:\Users\Dieter\AppData\Local\TemporaryProjects\NotificationAreaApplication1\Window1.xaml           1          1          NotificationAreaApplication1

      [...]

    Wobei der angegebene Link nicht existiert und der Pfad (C:\Users\Dieter\AppData....) im Fenster von den Fehlermeldung nicht zu sehen ist. Ich war ganz erstaunt als ich ihn durch Copy und Past hier entdeckte.

     

    die Weiterleitung im in der Fehlermeldung angegebenen Link funktioniert bei mir und ich lande hier . Der Umstand, dass Deine Vorlage blockiert wird, könnte auch tatsächlich ursächlich für den ganzen Spuk sein. Sprich, versuch doch mal das Aufheben der Sperre und anschließende Hinzufügen der Referenz. Komisch ist dann allerdings trotzdem, dass nach dem ersten Kompilieren alles läuft ...

    Die Ursache dafür, dass der Pfad bei Dir nicht existiert, dürfte lediglich eine Systemeinstellung bei Dir sein. Soll heißen, im Windows Explorer kannst Du einstellen, ob versteckte und Systemdateien verborgen werden sollen.

     

    Ich hoffe ich gehe dir mit meiner Fragerei nicht auf die Nerven!

    Ach was. :-)

    Cheers,
    Olaf
    http://blogs.intuidev.com
    Donnerstag, 24. Juni 2010 06:20
  • Hi Olaf,

    komisch bei dem Link bin ich gestern immer in der MSDN-Suche gelandet. Kann es sein, dass es im Deuschen diese Seite nicht gibt? Gut OK, ich glaube nicht, dass es an der Sperre liegt, da VS2010 dann nachfragt ob es das Assembly öffnen soll oder nicht, aber ich werde das Testen(geht aber erst heute Abend). Der angegebene Pfad (C:\Users\Dieter\AppData\Local\) wird bei mir nicht im Fehlerfenster von VS2010 angezeigt (vielleicht auch nur eine Einstellungssache), ich sah diesen Pfad erst als ich die Fehlermeldung hier einfühgte. Ich habe diese Vorlage direkt aus dem VS2010 Projektfenster heraus installiert und es ist eine freie Microsoft Vorlage, also nicht einfach nur ein Download, Die Vorlage wurde bei der Installation auch gleich bei den Projektvorlagen angezeigt. Ich habe dann die Dateien unter C:\Users\Dieter\AppData\... in einem Ordner gefunden, sind alles Zipdateien mit den selben inhalt und ein paar PNG Files. Wenn es ein normales Projekt währe, ist das ganze kein Problem abspeichern und fertig, nur bei einer Vorlage geht das nicht da sie nicht verändert wird. Nur wie fügt man nun diese Referenzen bei einer Vorlage hinzu?

    Danke und  Gruß Dieter

    Donnerstag, 24. Juni 2010 07:27
  • Hallo Olaf,

    also ich habe mir von allen Dateien die Eigenschaften angesehen aber keine Sperre gefunden.

    Gruß Dieter

    Freitag, 25. Juni 2010 16:21
  • Hi Dieter,

    tja, leider gehen mir irgendwie die Ideen aus ... :-(


    Cheers,
    Olaf
    http://blogs.intuidev.com
    Sonntag, 27. Juni 2010 11:57
  • Hi Olaf,

    ist nicht schlimm. Ich werde die Vorlage nach dem ich sie Compiliert habe als neue Projektvorlage Exportieren, das müsste zu einem guten Ergebnis führen und danach werde ich einfach die Originalvorlage von Microsoft wieder Deinstallieren denn zwei gleiche Vorlagen brauche ich nicht. Dennoch danke dass du dir die Zeit genommen hast.

    Gruß und noch ein schönes Wochenende

    Dieter

     

    Sonntag, 27. Juni 2010 18:03