it-swarm.com.de

Starten Sie den Debugger in Code

Ich muss eine Anwendung debuggen, die mit einer Installation mit einem Klick gestartet wird. (VS 2010, Excel VSTO mit Office 7). Basierend auf den Anmeldeinformationen, die für die Anwendung mit einem Klick bereitgestellt werden, sollte dem Benutzer eine von zwei Begrüßungsseiten angezeigt werden. Dies funktioniert auf meinem Computer einwandfrei, aber bei der Bereitstellung führt das Wechseln von der Standardseite zur zweiten Begrüßungsseite zu einem Fehler. 

Für das Leben von mir kann ich nicht herausfinden, wie ich den Prozess von VS2010 aus debuggen kann. Ich kann eine Verbindung zum Login herstellen, bevor ich die Anmeldeinformationen eingebe. Ich kann jedoch keine Verbindung zu Excel herstellen, da es erst gestartet wird, wenn ich auf die Schaltfläche OK geklickt habe. 

Gibt es eine Möglichkeit, Excel zu verwenden, oder besser gesagt, mein Code ruft den Debugger an, da er instanziiert wird, sodass ich herausfinden kann, warum meine Bildressource in der bereitgestellten Anwendung nicht verfügbar ist. 

Vielen Dank. 

Geil

43
EoRaptor013
System.Diagnostics.Debugger.Launch();
91
Juan Ayala

Juan ist die beste Antwort, wenn Sie Visual Studio installiert haben. Wenn das Ziel nicht vorhanden ist, müssen Sie möglicherweise eine Pause einlegen (normalerweise wird in Main ein Dialogfeld eingefügt, das auf das Anhängen wartet). Verwenden Sie dann einen Remote-Debugger , um es auf Ihrem Rechner anzubringen

4

sie könnten an Excel anhängen, wenn es lange genug lief, aber ich bezweifle, dass der Fehler da ist.

sie können an laufende Anwendungen/Prozesse anhängen und wenn Symbole verfügbar sind (Debug-Build), können Sie wirklich debuggen, aber die Anwendung muss lange genug leben, damit Sie sie zum Anhängen auswählen können.

Ich denke, von dem, was Sie sagen, ist das, was Sie brauchen, die richtige Ausnahme- und Fehlerprotokollierung, alles wie Log4Net oder NLog, das bei jeder Ausnahme alles speichert (Stack-Trace, Ausnahmedetails ...), so dass Sie eindeutig erkennen können, was wirklich ist Ausgabe ist.

0
Davide Piras

Um einen Haltepunkt aus dem Code zu erzwingen, verwenden Sie Folgendes:

if (System.Diagnostics.Debugger.IsAttached)
    System.Diagnostics.Debugger.Break();
0
marsh-wiggle