2009-10-26 11 views
35

Acabo de instalar VS 2010 Beta 2 y quería jugar con un proyecto ASP.NET MVC 2. Simplemente agregué algunos guiones (alert('hello');) en la vista index.aspx del controlador doméstico, y puedo ver que se está ejecutando. Cuando intento establecer un punto de interrupción, sin embargo, nunca se golpea. También traté de usar la palabra clave "depurador", y cuando lo hago, aparece un mensaje decepcionante de "no hay código fuente disponible para la ubicación actual". También recibo este mensaje cuando trato de adjuntar de forma independiente a un proceso de IE donde se está ejecutando mi aplicación.El depurador de secuencias de comandos de Visual Studio 2010 no funciona para mí

¿Qué debo hacer para obtener una experiencia amigable de depuración de scripts? (He utilizado con éxito Firebug para depurar este, pero por alguna razón yo prefiero el depurador VS).

Éstos son algunos detalles de la configuración de mi:

  • Estoy lanzando mis cosas en VS 2010 Beta 2.
  • IE8 versión 8.0.7600.16385 es mi navegador predeterminado.
  • La opción avanzada "Deshabilitar la depuración de scripts (Internet Explorer)" está desmarcada.
  • La opción "Deshabilitar la depuración de scripts (Otro)" está desmarcada.
  • En la pestaña de propiedades "web" de mi proyecto ASP.NET MVC 2, se comprueba el depurador de ASP.NET. Todos los demás están sin marcar.
  • La depuración de scripts de Visual Studio 2008 parece funcionar bien.

Respuesta

30

El depurador no puede depurar tanto el código de Silverlight como el de secuencia de comandos al mismo tiempo; si se selecciona el depurador de Silverlight, la depuración de JavaScript está desactivada.

  1. Ir a Propiedades del proyecto (Alt + Intro).
  2. Para un proyecto de sitio web: Seleccione "Opciones de inicio". O para una aplicación web: vaya a la pestaña Web y en la parte inferior verá la opción Depuradores.
  3. Compruebe que la casilla de verificación de Silverlight NO está marcada si desea poder depurar JavaScript. (Es desafortunado que la interfaz de usuario aquí no es clara acerca de este efecto secundario.)
+4

Podría besarte. Estoy tratando de depurar Javascript en un sitio asp.net, con un proyecto de Silverlight adjunto. Cada vez que traté de depurar, recibí este extraño ciclo de ventanas emergentes pidiéndome que adjuntara un depurador y me quejara de que el depurador ya estaba adjunto. Para ser claros, vaya al proyecto asp.net en su solución y vaya a las propiedades del proyecto y abra la pestaña Web. En la parte inferior hay casillas de verificación para que utilicen los depuradores. Deshabilitar el depurador de Silverlight lo hará para que el depurador de JavaScript funcione de nuevo. Esto debe ir en una entrada wiki o algo así. –

+2

** ¡Gracias, señor Cook! ** – Airn5475

+0

@mister ok en mvc3/vs2010 No puedo ver _Start Options_ en las propiedades del proyecto – gideon

1

CTRL + Alt + P (Adjuntar al proceso), seleccione IE, seleccione 'script' para el tipo de depuración.

+2

Gracias por la idea, pero recibo el mismo mensaje "No hay código fuente disponible para la ubicación actual" que recibí cuando traté de iniciar con F5 y la palabra clave "depurador". –

+0

¿Puede agregar una función en javascript, adjuntar y luego crear un nuevo punto de interrupción basado en el nombre de la función? – popester

7

Estaba teniendo los mismos problemas. No pude lograr que el IDE incluso se rompiera en un punto de interrupción dentro de una etiqueta de script. Sin embargo, cuando agregué "depurador"; como la primera línea en la etiqueta del script pudo hacer que el IDE respondiera, pero solo para decir que el desastre no estaba disponible.

Sin embargo, pude hacer clic en las herramientas de depuración como "paso hacia adentro" y "paso sobre". Cuando hice esto, el IDE avanzó en algunos de los scripts externos que estoy usando (JQuery y Google Maps). Así que saqué el bloque de código JavaScript de la vista y lo puse en un archivo .js separado en la carpeta "Contenido". Luego agregué una etiqueta de script para hacer referencia a este nuevo archivo .js (url = "/Content/Test.js").

Funcionó ... un poco molesto que tiene que pasar por este esfuerzo, pero tal vez hay algo que decir para JavaScript no se incluye directamente en una vista. Espero que este sea un error que pretenden solucionar.

+0

¡Thx! ¡Trabajado como un encanto! +1 – Stephane

0

Como mencionó Ryan anteriormente, moví mi script a un archivo separado en la carpeta Scripts. También agregué depuración en el nombre del script para que se convirtiera en MyTestScript. depuración .js. Incluí el script a través de una etiqueta de script y pude establecer puntos de corte en el archivo de script que acertó al depurador.

0

He encontrado que la herramienta Devloper de Google Chrome muestra el JavaScript a la perfección. En mi caso, normalmente estoy cargando el script con la función getScript de jQuery y la ejecución del código suele ser mediante una devolución de llamada jQuery al cargar una página o al manejar un evento. Con Visual Studio 2010, con frecuencia me encontré con el error "Sin fuente". Triste, necesito Chrome para depurar JavaScript que es parte de mi proyecto de Visual Studio.

4

Al depurar en IE, VS parece agregar una carpeta llamada 'Documentos de secuencias de comandos' al Explorador de soluciones.Dentro de esta carpeta hay otra carpeta llamada 'Windows Internet Explorer', y dentro de ella veo todas las secuencias de comandos js cargadas y el archivo HTML (compilado) que se muestra actualmente en IE. Establecer puntos de interrupción en las etiquetas de script en este archivo HTML funciona para mí.

2

Para resolver esto, vaya a Propiedades del proyecto y seleccione "Opciones de inicio". Luego marque la casilla de verificación Código nativo. y desmarque la casilla de verificación de Silverlight porque ambas opciones no funcionan juntas.

0

El uso de un archivo js independiente tiene sus inconvenientes. Por ejemplo, no puedes usar helpers MVC. Microsoft realmente necesita resolver esto.

Intellisense también no funciona correctamente en bloques de script en una vista, incluso si se incluyen los comentarios referencia así:

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

Intellisense funciona bien en el archivo js con este enfoque sin embargo.

Cuestiones relacionadas