web-dev-qa-db-fra.com

Le débogueur de script Visual Studio 2010 ne fonctionne pas pour moi

Je viens d'installer VS 2010 Beta 2 et je voulais jouer avec un projet ASP.NET MVC 2. J'ai simplement ajouté un script (alert('hello');) dans la vue index.aspx du contrôleur Home et je peux le voir en cours d'exécution. Lorsque j'essaie de définir un point d'arrêt, cependant, il ne sera jamais touché. J'ai aussi essayé d'utiliser le mot-clé "débogueur" et le message "le code source correspondant à l'emplacement actuel" est décevant. Je reçois également ce message lorsque je tente de me connecter indépendamment à un processus IE dans lequel mon application est en cours d'exécution.

Que dois-je faire pour obtenir une expérience de débogage de script convivial? (J'ai utilisé avec succès Firebug pour déboguer ceci, mais pour une raison quelconque, je préfère le débogueur VS.)

Voici quelques détails de ma configuration:

  • Je lance mes affaires dans VS 2010 Beta 2.
  • IE8 version 8.0.7600.16385 est mon navigateur par défaut.
  • L'option avancée "Désactiver le débogage de script (Internet Explorer)" est désactivée.
  • L'option "Désactiver le débogage du script (Autre)" est désélectionnée.
  • Dans l'onglet de propriétés "Web" de mon projet ASP.NET MVC 2, le débogueur ASP.NET est vérifié. Tous les autres sont décochés.
  • Le débogage de script Visual Studio 2008 semble fonctionner correctement.
35
Chris Farmer

Le débogueur ne peut pas déboguer à la fois le code Silverlight et le code de script si le débogueur Silverlight est sélectionné. Le débogage JavaScript est désactivé.

  1. Accédez aux propriétés du projet (Alt + Entrée).
  2. Pour un projet de site Web: Sélectionnez "Options de démarrage". Ou pour une application Web: Allez dans l'onglet Web et en bas, vous verrez l'option Débogueurs.
  3. Vérifiez que la case Silverlight n'est pas cochée si vous voulez pouvoir déboguer JavaScript. (Il est regrettable que l'interface utilisateur ici ne soit pas claire sur cet effet secondaire.)
30
Mister Cook

J'avais les mêmes problèmes. Je n'ai pas pu obtenir que le IDE se casse même à un point d'arrêt défini dans une balise de script. Cependant, quand j'ai ajouté "debugger;" comme la première ligne de la balise de script pouvait obtenir le IDE pour répondre, mais seulement pour dire que le désastre n'était pas disponible. 

Cependant, j'ai pu cliquer sur les outils de débogage tels que "pas à pas" et "pas à pas". Lorsque j’ai fait cela, IDE a progressé dans certains des scripts externes que j’utilise (JQuery et Google Maps). J'ai donc retiré le bloc de code JavaScript de la vue et l'ai placé dans un fichier .js séparé du dossier "Contenu". Ensuite, j'ai ajouté une balise de script pour référencer ce nouveau fichier .js (url = "/Content/Test.js"). 

Cela a fonctionné ... un peu gênant que vous deviez passer par cet effort, mais peut-être y a-t-il quelque chose à dire pour que JavaScript ne soit pas inclus directement dans une vue. J'espère que c'est un bug qu'ils ont l'intention de corriger.

7
Ryan Pedersen

Lors du débogage sur IE, VS semble ajouter un dossier appelé "Script Documents" à l'explorateur de solutions. Dans ce dossier, il y a un autre dossier appelé "Windows Internet Explorer", dans lequel se trouvent tous les scripts js chargés et le fichier HTML (compilé) en cours d'affichage sur IE. La définition de points d'arrêt sur les balises de script de ce fichier HTML me convient parfaitement.

4
clau137

Pour résoudre ce problème, allez dans Propriétés du projet et sélectionnez "Options de démarrage". Cochez ensuite la case à cocher de code natif. et décochez la case Silverlight parce que les deux options ne fonctionnent pas ensemble.

2

CTRL + Alt + P (Attacher au processus), sélectionnez Internet Explorer, sélectionnez "script" pour le type de débogage.

1
popester

Comme Ryan l'a noté ci-dessus, j'ai déplacé mon script dans un fichier séparé sous le dossier Scripts . J'ai également ajouté debug dans le nom du script pour qu'il devienne MyTestScript. debug . Js. J'ai inclus le script via une balise de script et pouvais définir des points de rupture dans le fichier de script touché par le débogueur.

0
frjames

J'ai trouvé que l'outil de Google Chrome devloper montre le JavaScript parfaitement. Dans mon cas, je charge normalement le script avec la fonction getScript de jQuery et l'exécution du code s'effectue généralement par un rappel jQuery lors du chargement d'une page ou de la gestion d'un événement. Avec Visual Studio 2010, j'ai souvent rencontré le bogue "Aucune source". Triste, j'ai besoin de Chrome pour déboguer JavaScript qui fait partie de mon projet Visual Studio.

0
CraigAP

L'utilisation d'un fichier js distinct a ses inconvénients. Par exemple, vous ne pouvez pas utiliser les helpers MVC. Microsoft a vraiment besoin de comprendre celui-ci.

Intellisense ne fonctionne pas non plus correctement dans les blocs de script d'une vue, même si vous incluez les commentaires de référence tels que:

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

Intellisense fonctionne bien dans le fichier js avec cette approche cependant.

0
Frank Hoffman