Отладчик сценариев Visual Studio 2010 не работает для меня - PullRequest
35 голосов
/ 26 октября 2009

Я только что установил VS 2010 Beta 2 и хотел поиграть с проектом ASP.NET MVC 2. Я просто добавил сценарий (alert('hello');) в представление index.aspx контроллера Home, и я вижу, что он выполняется. Однако, когда я пытаюсь установить точку останова, она никогда не попадает в цель. Я также попытался использовать ключевое слово «отладчик», и когда я это сделал, я получил разочаровывающее сообщение «нет исходного кода для текущего местоположения». Я также получаю это сообщение, когда пытаюсь независимо подключиться к процессу IE, в котором запущено мое приложение.

Что мне нужно сделать, чтобы получить дружественный опыт отладки скриптов? (Я успешно использовал Firebug для отладки, но по какой-то причине я предпочитаю отладчик VS.)

Вот некоторые детали моей конфигурации:

  • Я запускаю свои вещи в VS 2010 Beta 2.
  • IE8 версии 8.0.7600.16385 - мой браузер по умолчанию.
  • Параметр «Отключить отладку сценариев (Internet Explorer)» отключен.
  • Параметр «Отключить отладку сценариев (другое)» не установлен.
  • На вкладке "web" свойств моего проекта ASP.NET MVC 2 проверен отладчик ASP.NET. Все остальные не проверены.
  • Кажется, что отладка скриптов в Visual Studio 2008 работает нормально.

Ответы [ 8 ]

30 голосов
/ 22 января 2011

Отладчик не может отлаживать как код Silverlight, так и код сценария одновременно, если выбран отладчик Silverlight Отладка JavaScript отключена.

  1. Перейти к свойствам проекта (Alt + Enter).
  2. Для проекта веб-сайта: выберите «Параметры запуска». Или для веб-приложения: перейдите на вкладку «Интернет» и в нижней части вы увидите параметр «Отладчики».
  3. Убедитесь, что флажок Silverlight НЕ отмечен, если вы хотите иметь возможность отлаживать JavaScript. (К сожалению, пользовательский интерфейс не совсем ясно об этом побочном эффекте.)
7 голосов
/ 05 ноября 2009

У меня были те же проблемы. Я не смог заставить IDE прерываться даже в точке останова, установленной внутри тега скрипта. Однако, когда я добавил «отладчик»; так как первая строка в теге скрипта смогла заставить IDE отвечать, но потом только сказать, что дизассемблирование не было доступно.

Однако я смог нажать на инструменты отладки, такие как «шаг в» и «шаг за шагом». Когда я сделал это, IDE перешла в некоторые из используемых мной внешних скриптов (JQuery и Google Maps). Поэтому я вынул блок кода JavaScript из представления и поместил его в отдельный файл .js в папке «Содержимое». Затем я добавил тег сценария для ссылки на этот новый файл .js (url = "/Content/Test.js").

Это сработало ... немного утомительно, что вам приходится проходить через это усилие, но, возможно, есть что сказать, что JavaScript не включен непосредственно в представление. Я надеюсь, что это ошибка, которую они намерены исправить.

4 голосов
/ 21 декабря 2010

При отладке в IE, VS, кажется, добавляет папку «Документы сценария» в обозреватель решений. Внутри этой папки есть еще одна папка под названием «Windows Internet Explorer», и внутри нее я вижу все загруженные js-скрипты и (скомпилированный) HTML-файл, который в данный момент отображается в IE. Установка точек останова на теги сценария в этом HTML-файле работает для меня.

2 голосов
/ 14 мая 2011

Для решения этой проблемы перейдите в Свойства проекта и выберите «Параметры запуска». Затем установите флажок «Родной код». и снимите флажок Silverlight, потому что оба параметра не работают вместе.

1 голос
/ 26 октября 2009

CTRL + Alt + P (Присоединить к процессу), выбрать IE, выбрать «скрипт» для типа отладки.

0 голосов
/ 26 мая 2011

Использование отдельного файла js имеет свои недостатки. Например, вы не можете использовать помощников MVC. Microsoft действительно должна понять это.

Intellisense также не работает должным образом в скриптовых блоках в представлении, даже если вы включите ссылочные комментарии, например, так:

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

При таком подходе Intellisense прекрасно работает в js-файле.

0 голосов
/ 14 сентября 2010

Я обнаружил, что инструмент разработчика Google Chrome отлично показывает JavaScript. В моем случае я обычно загружаю скрипт с помощью функции getScript jQuery, и выполнение кода обычно выполняется с помощью обратного вызова jQuery после загрузки страницы или обработки события. В Visual Studio 2010 я часто сталкивался с ошибкой «Нет источника». Грустно, мне нужен Chrome для отладки JavaScript, который является частью моего проекта Visual Studio.

0 голосов
/ 26 мая 2010

Как заметил Райан выше, я переместил свой скрипт в отдельный файл в папке Scripts. Я также добавил отладку в имя скрипта, чтобы он стал MyTestScript. debug .js. Я включил сценарий с помощью тега сценария и смог установить точки останова в файле сценария, которые ударил отладчик.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...