Announcement

Collapse
No announcement yet.

Nach Start beendet sich Programm ohne Fehlermeldung

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Nach Start beendet sich Programm ohne Fehlermeldung

    Hallo Forummitglieder,

    vielleich kann mir jemand von euch helfen bei der folg. Sache:

    Ich schrieb in VS 2003, mit VB.NET, eine Datenbankanwendung. Habe auch einige Com.Objekte verwendet (z. B. FlexGrid od MaskEdit). Ich machte ein Setup-Projekt davon und installierte es an anderen Rechner (Konfig siehe weiter unter "Clientrechner") gemeinsam mit Framework 1.1. Die erste Schwierigkeit: die COM-Bibliotheken registrierten sich nochmals in der Registry und es gab Probleme. Z.B. liefen Makros mit Formularen nicht mehr und es gab ein Haufen an Fehlermeldungen bei Ausführungen der Makros oder sogar beim Abspeichern der Excelmappen. Das lies sich beheben indem die, für das Office "richtige" dll´s, über Verweise wieder eingebunden waren. Danach lief alles und die User konnten die Anwendung und Makros nützen.

    So, jetzt zum eigentlichen Problem.
    Ich fand einige Komponenten, die ich statt diese COM´s einsetzen könnte, jedoch waren einige (mit der Funktionalität die ich wollte) nur mit VS 2005 kompatibel. OK, dachte ich mir, ich importierte das Projekt ins VS 2005. Das verlief problemlos. Einige Komponenten wurden fröhlich ausgetauscht und das Programm lief wunderbar am Entwicklerrechner (XP Media Center Version 2002, SP2, Framewk. 1.1 und 2.0, CPU T7400 2,16GHz, 2GB RAM). Ich machte, wie vorhin ein Setup-Projekt, jedoch beim Erstellen von dem, verlangte VS plötzlich die Installations-CD ? Na gut, dachte ich und ab die CD ins Laufwerk. Alles passierte ohne Fehler und ich bekam ein Setup-Paket ohne diese COM dll´s und ich versprach mir davon, jetzt keine Probleme mit Office zu haben. Die Installation am Clientrechner (XP Prof Version 2002, SP 2, CPU P 1,4GHz, 512MB RAM) verlief auch diesmal ohne Probleme und siehe da auch die Makros im Excel liefen ohne Probleme danach....

    ABER...die Anwendung läuft jetzt nicht! Wenn ich die erstmals starte, sehe ich sie Kurz im Taskmanager (als Task) und dann wird die beendet ohne irgendeine (Fehler-)Meldung . Beim weiteren Versuch die Anwendung zu starten erscheint sie gar nicht als Task und geschweige wird das Formular angezeigt, es tut sich zwar was, das sieht man an der Prozessorauslastung und "Sanduhr", jedoch ist das Ganze nach 1-2 sec vorbei. Framework 2.0 ist neu installiert keine Veränderung. Ich habe auch schon Securitylevel für "All Code" auf Maschinenebene auf "FullTrust" gehoben ohne Erfolg. Auch das Einrichten eine extra Zone (Type: URL, URL > Pfad des Programmordners, Security: FullTrust) unter der Maschinenebene blieb erfolglos.

    Im Moment bin ich ratlos, da es bei der Installation und beim Ausführen von der Anwendung zu keinen Fehler kommt, jedoch erscheint die Anwendung nicht am Bildschirm .

    Weitere Frage die sich für micht stellt, warum verlangt VS 2005 beim Erstellen von Setup-Projekten immer die Istallations-CD ?
    Kann man die "fehlenden" Komponenten nicht dauerhaft installieren bzw. hängt mein problem damit zusammen?




    Das ist mein erster Beitrag und gleich so umfangreich, ich hoffe, ich verschrecke euch nicht damit und einer oder anderer gibt mir ein Tipp.

    Vielen Dank!

  • #2
    ABER...die Anwendung läuft jetzt nicht! Wenn ich die erstmals starte, sehe ich sie Kurz im Taskmanager (als Task) und dann wird die beendet ohne irgendeine (Fehler-)Meldung .
    Höhrt sich für mich stark nach einem Stack-Overflow an.

    Weitere Frage die sich für micht stellt, warum verlangt VS 2005 beim Erstellen von Setup-Projekten immer die Istallations-CD ?
    Zwei Möglichkeiten:
    1, Features werden so installiert das sie bei der ersten Verwendung richtig installiert werden.
    2, VS.NET 2005 bzw. der Installer hat erkannt das irgendwas nicht passt und will dies korrigieren.

    Kann man die "fehlenden" Komponenten nicht dauerhaft installieren bzw. hängt mein problem damit zusammen?
    Hatte ich öfters bei MS Office 2000. Einfach nur hoffen das es nicht zu häufig passiert.

    Comment


    • #3
      Hallo Bernhard,

      besten Dank für die schnelle Antwort.

      Das mit "Stack-Overflow" konnte sein (ich schau es mir genauer an), aber nach
      Programmstart mache ich nichts anderes als ein Hand voll Variablen zu setzen und ein Anmeldungsformular zu initialisieren und zu anzeigen. Erst nach "OK" klicken (in diesem Fenster) durch User mache ich die Connection zu DB auf und prüfe ob der Zugriff berechtigt ist. Aber nicht mal der LogIn-Fenster wird angezeigt.

      Also, beim Programmstart habe ich keinerlei komplizierte Vorgänge so wie irgendwelche Iterationen oder sonstiges.

      Und das mit dem "Features permanent nachinstallieren" scheint wirklich ein MS-Problem zu sein, ich hatte es auch beim Office.

      Comment


      • #4
        > Also, beim Programmstart habe ich keinerlei komplizierte Vorgänge so wie irgendwelche Iterationen oder sonstiges.

        Vermutlich läuft irgendeine Komponente welche beim Formular-Initialisieren auch mit initalisiert wird Amok.

        > Und das mit dem "Features permanent nachinstallieren" scheint wirklich ein MS-Problem zu sein, ich hatte es auch beim Office.

        Ist die schöne neue Installer-Welt. Deshalb haben wir in der Firma fast nur X-Copy-Installer (Sprich: Anwendung könnte auch von CD laufen). Und das auch noch unter "veralteten" Win32. Nicht mal ein fehlendes .NET stört uns.

        Comment


        • #5
          Hallo,

          ...dann wird die beendet ohne irgendeine (Fehler-)Meldung.
          in diesem Fall würde ich über die Projekteigenschaften auf der Anwendungsseite zuerst die Datei ApplicationEvents.vb anlegen lassen, um dort eine Ereignisbehandlung für die Application-Ereignisse Startup und UnhandledException zu aktivieren:

          <div style="font-family: Consolas; font-size: 10pt; color: black; background: white;"><p style="margin: 0px;"><span style="color: blue;">Namespace</span> <span style="color: blue;">My</span></p><p style="margin: 0px;">&nbsp;</p><p style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: blue;">Partial</span> <span style="color: blue;">Friend</span> <span style="color: blue;">Class</span> MyApplication</p><p style="margin: 0px;">&nbsp;</p><p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">Private</span> <span style="color: blue;">Sub</span> MyApplication_Startup(<span style="color: blue;">ByVal</span> sender <span style="color: blue;">As</span> <span style="color: blue;">Object</span>, _</p><p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; <span style="color: blue;">ByVal</span> e <span style="color: blue;">As</span> Microsoft.VisualBasic.ApplicationServices.StartupE ventArgs) <span style="color: blue;">Handles</span> <span style="color: blue;">Me</span>.Startup</p><p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Windows.Forms.MessageBox.Show(<span style="color: #a31515;">"Starup..."</span>)</p><p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">End</span> <span style="color: blue;">Sub</span></p><p style="margin: 0px;">&nbsp;</p><p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">Private</span> <span style="color: blue;">Sub</span> MyApplication_UnhandledException(<span style="color: blue;">ByVal</span> sender <span style="color: blue;">As</span> <span style="color: blue;">Object</span>, _</p><p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; <span style="color: blue;">ByVal</span> e <span style="color: blue;">As</span> Microsoft.VisualBasic.ApplicationServices.Unhandle dExceptionEventArgs) _</p><p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; <span style="color: blue;">Handles</span> <span style="color: blue;">Me</span>.UnhandledException</p><p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Windows.Forms.MessageBox.Show(e.Exception.Message) </p><p style="margin: 0px;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: blue;">End</span> <span style="color: blue;">Sub</span></p><p style="margin: 0px;">&nbsp;</p><p style="margin: 0px;">&nbsp;&nbsp;&nbsp; <span style="color: blue;">End</span> <span style="color: blue;">Class</span></p><p style="margin: 0px;">&nbsp;</p><p style="margin: 0px;"><span style="color: blue;">End</span> <span style="color: blue;">Namespace</span></p></div>

          Welche Exception-Meldung wird dann beim Programmstart angezeigt?

          Comment


          • #6
            Hallo Hr. Kosch,

            besten Dank für die professionelle Antwort. Ich werde diese Möglichkeit für die Zukunft
            auf jeden Fall nützen, das sollte mir keine Fehlermeldung beim Start vorenthalten sein.

            Nach einer durch programmierte Nacht, habe ich den Fehler bereits gefunden. Ich hatte mich ziemlich
            durch die fehlende Fehlermeldung, verwirren lassen und suchte immer an der falsche Stelle
            (z.B. Securityeinstellungen des Frameworks).

            Was war die Ursache meines Problems: eine Crystal-Komponente (Report Viewer), die ich leider
            optisch sehr schlecht finden konnte (Überbleibsel von Versuchen von vorher). Die Crystal-Laufzeitbibs waren
            am Clientrechner nicht installiert und deswegen kam es zum Absturz.

            Lösung: das Steuerelement und alle Crystal-Verweise entfernt. Anwendung neu kompiliert.

            Wie habe ich es gefunden: mittels CLR-Debugger (Framework SDK 2.0 > Tools > MS CLR Debugger).
            Beim ersten Debug-Versuch zeigte sich schon die Fehlermeldung und ich wusste was zu tun ist.

            Warum ich die Anwendung nicht schon früher mit dem Debugger angeschaut habe: ist mir selber ein Rätsel,
            aber da die Applikationen, gewöhnlich, so was an eine Flut an Fehlermeldungen ausspucken, falls irgendeine Komponente bzw.
            dll fehlt, bin ich hier einfach in die falsche Richtung „gelockt“ worden, da keine Meldung kam.

            Ich bedanke mich für eure Antworten und Vorschläge!

            Comment

            Working...
            X