Isso é o que eu obtenho mesmo quando executo a configuração de depuração:
A forma como fiz isso mostrar foi habilitando "Just My Code" e avisando se não há nenhum código de usuário na inicialização. Isso é algo que aconteceu recentemente com nosso projeto, e não tenho certeza do que fizemos para causar isso. Mas não fui capaz de consertar. Os pontos de interrupção não disparam e a observação rápida dá resultados estranhos.
Tentei pesquisar o problema no Google, mas nenhuma das soluções padrão de "pontos de interrupção não disparam" funcionou. Estou sem ideias.
Verifiquei o gerenciador de configuração e todos os projetos também estão definidos como Depurar.
Desativei "Habilitar otimizações" e não recebo mais a caixa de diálogo "você está depurando uma versão de lançamento". Ele é executado e para em pontos de interrupção novamente! No entanto, a janela de saída exibe isso na inicialização:
Os símbolos do módulo 'Navigo.exe' não foram carregados.
- Use uma configuração de compilação de depuração ou desative a opção de depuração 'Ativar Just My Code'.
- Verifique as configurações de 'Símbolos' nas opções de depuração.
Portanto, isso resolve meu problema principal de não ser mais capaz de usar pontos de interrupção e pop-up. O que é estranho, já que pensei que você precisava carregar símbolos para que os pontos de interrupção funcionassem. Então, como os pontos de interrupção funcionam se os símbolos não são carregados? Talvez seja apenas uma mensagem ruim?
Respostas:
Use o Configuration Manager para verificar quais são as configurações reais para a configuração de depuração - está no menu Build → Configuration Manager ... - no caso de estarem configurados para usar Release :
Além disso, certifique-se de que o projeto esteja definindo DEBUG corretamente e que "Otimizar Código" não esteja marcado:
fonte
Isso também aconteceu comigo em alguns projetos. Revisei minhas configurações de construção, conforme sugerido por stuartd . No entanto, 'Otimizar código' não foi habilitado em minhas configurações de compilação. Então eu habilitei e salvei o projeto. Então eu desmarquei e salvei novamente. Problema resolvido.
Existe algum tipo de bug que faz com que o
--optimize+
sinalizador seja passado para o depurador. Ativá-lo e, em seguida, desativá-lo é uma solução fácil até que o bug seja corrigido.fonte
Isso começou a acontecer comigo depois de aplicar a Atualização 1. Os projetos existentes começaram a mostrar isso, e posso replicar com um projeto totalmente novo. Todas as configurações são definidas como DEBUG e Optimize não é verificado.
O kicker é executar o projeto na primeira vez (ou depois de uma limpeza) funcionar bem, sem nenhuma mensagem. Parar e, em seguida, executar novamente o projeto (nota - o projeto não é reconstruído ) exibirá a caixa de diálogo.
A única solução é desligar a opção Just My Code - o que parece um hack, como acontecia antes da atualização 1 sem problemas.
fonte
Se nenhuma das soluções mencionadas ajudou, verifique o AssemblyInfo.cs do seu projeto para o aplicativo DebuggableAttribute explícito. Parece que substitui as opções de depuração / liberação do compilador.
Eu tinha essa linha no arquivo do meu caso (projeto legado, não tenho ideia de como foi parar lá). Excluí-lo resolveu o problema:
fonte
Selecione o menu Depurar → Opções e desmarque a opção Suprimir otimização JIT . Funciona para mim.
Fonte: https://connect.microsoft.com/VisualStudio/feedback/details/2116788/flag-optimize-is-passed-to-the-debugger-even-while-the-build-settings-optimize-code-is- not-enabled-on-mvc-c-web-projects-when-using-just-my-code
fonte
Eu também encontrei esse problema. A correção que funcionou foi simplesmente limpar (
Build > Clean Solution
) e reconstruir (Build > Rebuild Solution
) meus projetos.fonte
Nenhuma das respostas anteriores funcionou para mim. Reiniciar o IIS corrigiu isso.
fonte
Apenas adicionando uma nota lateral à resposta de stuartd :
Certifique-se de verificar todos os projetos dependentes para as mesmas configurações de construção. Você receberá o mesmo prompt de mensagem se seu projeto principal tiver as configurações adequadas, mas seus projetos dependentes não. Faz sentido óbvio em retrospectiva, mas não foi a primeira coisa que veio à mente.
fonte
No meu caso, o problema era que a URL do projeto IIS na guia da web de propriedades do projeto ASP.NET estava configurada para a URL errada.
Ele estava apontando para http: // localhost que eu estava usando com uma cópia diferente do projeto. O endereço da solução que abri foi realmente configurado no meu IIS local como http: // localhost: 90 .
Mudar para o endereço correto corrigiu o problema.
fonte
Tentei praticamente tudo nesta lista, mas no final resolvi isso abrindo as propriedades da solução e alternando de "Vários projetos de inicialização" para "Um único projeto de inicialização" e vice-versa.
fonte
Eu tive o mesmo problema ... Não importa o que eu fiz - nada funcionou.
Era um novo projeto vazio que era o problema. Acabei removendo o projeto e adicionando um novo projeto - o novo projeto precisava ter outro nome ; se eu usasse o mesmo nome, o erro simplesmente reaparecia - mesmo após uma reinicialização, limpe e reconstrua ... Deve ser um bug no Visual Studio 2015.
fonte
Para mim, era uma referência do NuGet de um servidor NuGet privado. Não sei como foi compilado, mas mudar a referência para uma referência de projeto me ajudou a superar o problema.
fonte
Abri meu projeto Visual Studio 2012 Pro no Visual Studio 2015 Express e tive o mesmo problema.
Eu verifiquei minhas propriedades da solução → Propriedades de configuração e descobri que um projeto foi definido como Release & x86.
Mudei de volta para Debug e Any CPU , e o prompt desapareceu.
fonte
No meu caso, eu estava desenvolvendo um plug-in VSTO para Outlook e o Outlook estava carregando acidentalmente a versão de lançamento do arquivo DLL que instalei recentemente ao testar meu instalador.
Parece que o Visual Studio estava tentando usar essa DLL em vez do Debug que eu esperava. Corrigir qual arquivo DLL está sendo carregado pelo Outlook corrigiu isso para mim.
fonte
Copiando minha outra resposta daqui .
Conforme mencionado por @romanoza, a Microsoft atualizou o relatório de bug com as seguintes informações:
Esta é a solução alternativa. Eles vão dizer mais tarde:
Por fim, o reconhecimento:
fonte
Eu encontrei o mesmo problema e, finalmente, resolvi escolhendo "Desativar Just My Code and Continue" .
Apenas minha configuração de código
fonte
Etapas de resolução:
Vá para as configurações de Build da página Propriedades do projeto infrator .
Role para a direita até o botão "Avançado ..." .
Certifique-se de que “Informações de depuração:” não esteja definido como “nenhum” .
Eu recomendo que você use a opção completa .
fonte
Depois de ver o link de Patrick como um comentário à pergunta , alguém notou uma solução alternativa que era interromper o site no IIS Express . Consegui evitar que esse mesmo problema surgisse fazendo exatamente isso depois de interromper o depurador no Visual Studio.
No entanto, eu estava investigando mais e acredito que também possa estar relacionado à configuração 'Editar e continuar' do depurador. Quando desativei isso no menu Ferramentas → Opções ... do Visual Studio, não tive mais o problema. Mas isso o impediria de usar o recurso Editar e continuar , então não tenho certeza se isso vale a pena para você.
Menu Ferramentas → Opções → Depurador → Editar e continuar (vá até o final da lista Geral) → desmarque a caixa de seleção Editar e continuar .
Eu também experimentei isso repentinamente depois de instalar a Atualização 1, mas pode ser que eu tenha ativado essa configuração em primeiro lugar ... Não tenho certeza embora.
fonte
Caso você precise apenas continuar sem mais atrasos, selecione a última opção do pop-up e tudo será executado da mesma forma que antes.
fonte
Este foi um alerta estranho.
Reconstruir a solução não limpará necessariamente todos os arquivos DLL (especialmente aqueles copiados de projetos dependentes).
No entanto, a reconstrução do projeto de dependência fez com que esse alerta desaparecesse.
Enfrentei isso com o Visual Studio 2015 Atualização 3.
fonte
Minha solução foi um pouco diferente de todas as outras e é um pouco única.
Estou trabalhando com um site que contém uma combinação de código gerenciado e ASP Classic , ambos fazendo referência ao mesmo assembly. O Visual Studio estava reclamando que meu arquivo DLL gerenciado era uma versão de lançamento.
O problema era uma exceção não detectada em minha montagem, mas estava sendo lançado por uma página ASP Classic via interoperabilidade. O Visual Studio não conseguiu lidar com a depuração e exibiu a mensagem de erro. A mesma exceção lançada do código gerenciado teria ativado o depurador conforme o esperado.
Corrigir o problema no construtor do meu assembly gerenciado consertou tudo.
Tudo faz sentido agora que olho para o quadro geral, mas na época, a mensagem de erro me levou por um caminho muito profundo, e tentei de tudo na resposta aqui até que tive aquele "Ah-ha!" momento.
fonte
Passei dois dias e parece que Redefinir a instância experimental do Visual Studio 2017 me ajudou.
fonte