Pergunta

Acabei de instalar VS 2010 Beta 2 e queria jogar com um 2 projeto ASP.NET MVC. Eu simplesmente adicionado algum script (alert('hello');) à vista index.aspx do controlador Casa, e eu posso vê-lo em execução. Quando eu tentar definir um ponto de interrupção, no entanto, nunca é atingido. Eu também tentou usar a palavra-chave "depurador", e quando eu faço, eu recebo um decepcionante "não há código fonte disponível para o atual local" mensagem. Eu também receber esta mensagem quando tento anexar de forma independente para um processo de IE onde meu aplicativo está sendo executado.

O que eu preciso fazer para obter uma experiência de depuração de script friendly? (Eu tenho usado com sucesso Firebug para depurar isso, mas por alguma razão eu prefiro o depurador VS).

Aqui estão alguns detalhes da minha configuração:

  • Estou lançando meu material em VS 2010 Beta 2.
  • IE8 versão 8.0.7600.16385 é meu navegador padrão.
  • O "Desativar depuração de script (Internet Explorer)" opção avançada está desmarcada.
  • O "Desativar depuração de script (Outros)" opção está desmarcada.
  • Na guia de propriedades "web" do meu projeto ASP.NET MVC 2, o depurador ASP.NET está marcada. Todos os outros são desmarcados.
  • Visual Studio 2008 depuração de script parece funcionar muito bem.
Foi útil?

Solução

O depurador não pode depurar ambos código Silverlight e código de script, ao mesmo tempo, se o depurador Silverlight é selecionado depuração de JavaScript está desligado.

  1. Vá para propriedades do projeto (Alt + Enter).
  2. Para um web site do projeto: "Start Options" Select. Ou para um Web Appliction:. Vá para a aba Web e no fundo você verá a opção Depuradores
  3. Verifique se a caixa de seleção Silverlight não está marcada, se você quer ser capaz de depurar JavaScript. (É lamentável que a interface do usuário aqui não é clara sobre este efeito colateral.)

Outras dicas

Eu estava tendo as mesmas questões. Eu não era capaz de obter o IDE até mesmo pausa em um ponto de interrupção definido dentro de uma tag script. No entanto, quando eu adicionei "debugger"; como a primeira linha na tag script foi capaz de obter o IDE para responder, mas, em seguida, apenas para dizer que o disassebly não foi availble.

No entanto, eu era capaz de clicar sobre as ferramentas de depuração como "entrar" e "passar por cima". Quando eu fiz isso o IDE fez progressos em alguns dos scripts externos que estou usando (JQuery e Google Maps). Então eu peguei o bloco de código JavaScript para fora da vista e colocá-lo em um arquivo .js separadas na pasta "Conteúdo". Então eu adicionei uma tag de script para fazer referência a este novo arquivo .js (url = "/Content/Test.js").

Ele trabalhou ... um pouco enfadonho que você tem que passar por este esforço, mas talvez haja algo a ser dito para JavaScript não ser incluído diretamente em uma exibição. Espero que este é um bug que pretendem correção.

Quando a depuração no IE, VS parece adicionar uma pasta chamada 'Script Documentos' ao Solution Explorer. Dentro desta pasta existe uma outra pasta chamada 'Windows Internet Explorer', e dentro dele eu vejo todos os js roteiros carregado eo (compilado) arquivo HTML a ser exibido no IE. Definir pontos de interrupção nas marcas de script neste arquivo HTML funciona para mim.

Para resolver isso, vá para as propriedades do projeto e selecione "Opções de início". Em seguida, marque a caixa Verificar código nativo Box. e desmarque a caixa de seleção Silverlight porque ambas as opções não funciona em conjunto.

CTRL + Alt + P (anexar ao processo), selecione IE, selecione 'script' para o tipo de depuração.

Como Ryan observado acima, me mudei meu script para um arquivo separado na pasta Scripts. Eu também acrescentou depuração no nome do script para que ele se tornou MyTestScript. depuração .js. Eu incluí o script através de um tag script e pode definir pontos de interrupção no arquivo de script que o hit depurador.

Eu descobri que a ferramenta devloper mostra Google Chrome o JavaScript perfeitamente. No meu caso, eu estou normalmente carregar o script com a função getScript do jQuery e execução do código é tipicamente por meio de uma chamada de retorno jQuery ao carregar uma página ou manusear um evento. Com o Visual Studio 2010, eu freqüentemente encontrou o bug "Nenhuma fonte". Triste I necessidade Chrome para depuração de JavaScript que faz parte do meu projeto de Visual Studio.

Usando um arquivo js separado tem suas desvantagens. Por exemplo, você não pode usar ajudantes MVC. Microsoft realmente precisa descobrir isso.

Intellisense também não funciona corretamente em blocos de script em uma visão, mesmo se você incluir os comentários de referência como este:

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

Intellisense funciona bem no arquivo js com essa abordagem embora.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top