webentwicklung-frage-antwort-db.com.de

Der Skript-Debugger von Visual Studio 2010 funktioniert für mich nicht

Ich habe gerade VS 2010 Beta 2 installiert und wollte mit einem ASP.NET MVC 2-Projekt spielen. Ich habe einfach ein Skript (alert('hello');) in die Ansicht index.aspx des Home-Controllers eingefügt, und ich kann sehen, dass es ausgeführt wird. Wenn ich versuche, einen Haltepunkt festzulegen, wird dieser nie getroffen. Ich habe auch versucht, das Schlüsselwort "Debugger" zu verwenden, und wenn ich dies tue, bekomme ich eine enttäuschende Meldung, dass für den aktuellen Standort kein Quellcode verfügbar ist. Ich erhalte diese Meldung auch, wenn ich versuche, mich selbständig an einen IE - Prozess anzuschließen, in dem meine App ausgeführt wird.

Was muss ich tun, um ein freundliches Skript-Debugging zu erhalten? (Ich habe Firebug erfolgreich zum Debuggen verwendet, aber aus irgendeinem Grund bevorzuge ich den VS-Debugger.)

Hier sind einige Details meiner Konfiguration:

  • Ich starte meine Sachen in VS 2010 Beta 2.
  • IE8 Version 8.0.7600.16385 ist mein Standardbrowser.
  • Die erweiterte Option "Skript-Debugging deaktivieren (Internet Explorer)" ist deaktiviert.
  • Die Option "Skript-Debugging deaktivieren (andere)" ist nicht markiert.
  • In der ASP.NET MVC 2-Projektregisterkarte "Web" wird der ASP.NET-Debugger geprüft. Alle anderen werden nicht geprüft.
  • Das Debuggen von Skript in Visual Studio 2008 scheint gut zu funktionieren.
35
Chris Farmer

Der Debugger kann nicht gleichzeitig den Silverlight-Code und den Skriptcode debuggen, wenn der Silverlight-Debugger ausgewählt ist. JavaScript-Debugging ist deaktiviert.

  1. Gehen Sie zu den Eigenschaften des Projekts (Alt + Eingabetaste).
  2. Für ein Websiteprojekt: Wählen Sie "Startoptionen". Oder für eine Webanwendung: Wechseln Sie zur Registerkarte "Web" und unten sehen Sie die Option "Debugger".
  3. Stellen Sie sicher, dass das Kontrollkästchen Silverlight NICHT aktiviert ist, wenn Sie JavaScript debuggen möchten. (Es ist bedauerlich, dass die Benutzeroberfläche hier nicht über diese Nebenwirkung klar ist.)
30
Mister Cook

Ich hatte die gleichen Probleme. Ich konnte das IDE nicht dazu bringen, an einem Haltepunkt innerhalb eines Skript-Tags zu brechen. Wenn ich jedoch "Debugger" hinzugefügt habe; Als erste Zeile im Skript-Tag konnte die IDE - Antwort erhalten, aber nur um zu sagen, dass der Disassebly nicht verfügbar war. 

Ich konnte jedoch auf die Debug-Tools wie "Step into" und "Step over" klicken. Als ich dies getan habe, hat die IDE einige der von mir verwendeten externen Skripts (JQuery und Google Maps) weiterentwickelt. Also nahm ich den JavaScript-Codeblock aus der Ansicht und legte ihn in eine separate .js-Datei im Ordner "Content". Dann fügte ich ein Skripttag hinzu, um auf diese neue .js-Datei zu verweisen (url = "/Content/Test.js"). 

Es hat funktioniert ... ein wenig lästig, dass Sie diese Anstrengung durchmachen müssen, aber vielleicht gibt es etwas zu sagen, dass JavaScript nicht direkt in einer Ansicht enthalten ist. Ich hoffe, das ist ein Fehler, den sie beheben wollen.

7
Ryan Pedersen

Beim Debuggen unter IE scheint VS dem Solution Explorer einen Ordner mit dem Namen 'Script Documents' hinzuzufügen. In diesem Ordner befindet sich ein weiterer Ordner mit dem Namen "Windows Internet Explorer". In diesem Ordner werden alle geladenen js-Skripts und die (kompilierte) HTML-Datei angezeigt, die derzeit im IE angezeigt wird. Das Festlegen von Haltepunkten für die Skript-Tags in dieser HTML-Datei funktioniert für mich.

4
clau137

Um dies zu beheben, gehen Sie zu den Eigenschaften des Projekts und wählen Sie "Startoptionen". Aktivieren Sie dann das Kontrollkästchen Native Code. Deaktivieren Sie das Kontrollkästchen Silverlight, da beide Optionen nicht zusammenarbeiten.

2

STRG + Alt + P (An Prozess anhängen), wählen Sie IE aus, und wählen Sie als Debugging-Typ "Skript" aus.

1
popester

Wie Ryan bereits erwähnt hat, habe ich mein Skript in eine separate Datei unter dem Ordner "Scripts" verschoben. Außerdem fügte ich Debug in den Namen des Skripts ein, sodass es zu MyTestScript. debug . Js wurde. Ich habe das Skript über ein Skript-Tag eingefügt und konnte Haltepunkte in der Skriptdatei festlegen, die der Debugger traf.

0
frjames

Ich habe festgestellt, dass das Google Chrome-Tool devloper das JavaScript perfekt anzeigt. In meinem Fall lade ich das Skript normalerweise mit der GetScript-Funktion von jQuery. Die Ausführung des Codes erfolgt normalerweise über einen jQuery-Callback, wenn eine Seite geladen oder ein Ereignis behandelt wird. Bei Visual Studio 2010 bin ich häufig auf den Fehler "Keine Quelle" gestoßen. Leider brauche ich Chrome, um JavaScript zu debuggen, das Teil meines Visual Studio-Projekts ist.

0
CraigAP

Die Verwendung einer separaten js-Datei hat Nachteile. Sie können beispielsweise keine MVC-Helfer verwenden. Microsoft muss dies wirklich herausfinden.

Intellisense funktioniert auch nicht ordnungsgemäß in Skriptblöcken in einer Ansicht, selbst wenn Sie die folgenden Referenzkommentare einfügen:

/// <reference path="/Scripts/jquery-1.6-vsdoc.js" />
/// <reference path="/Scripts/jquery-1.6.js" />

Intellisense funktioniert in der js-Datei mit diesem Ansatz jedoch gut.

0
Frank Hoffman