Ok, o que eu tenho:
O Visual Studio 2010 RC, W7 x64, iniciou um novo tipo de projeto de aplicativo Silverlight. Hospedando o aplicativo Silverlight em um projeto de aplicativo Web do ASP.NET. Silverlight versão 3.0. Adicionadas uma classe LinqToSQL, um serviço WCF, um aplicativo Winform Tester (projeto na solução) e algumas classes (também como projetos na solução).
Ontem, de repente, recebi a mensagem 'O ponto de interrupção não será atingido no momento. Nenhum símbolo foi carregado para este documento. mensagem aparecer no IDE, mas isso afeta apenas o aplicativo da Web, posso depurar o Silverlight e o Winform App.
O que eu tentei / fiz para me livrar da mensagem:
- Redefinir as configurações do Visual Studio
- todos os arquivos foram removidos em todas as pastas \ Temporary Files do ASP.NET (existe um para cada 32 bits / 64 bits e para o Framework 2.0 e 4.0)
- tentei depurar usando o servidor Web Visual Studio Integrated - normalmente eu uso o IIS, na saída do projeto da solução, excluí todas as pastas obj e bin em todas as pastas do projeto
- criou uma nova solução e adicionou todos os projetos a essa nova solução
- excluiu o arquivo suo da solução
- criou um novo aplicativo Web ASP.NET para testar se é um problema de instalação do VS => Eu posso depurar este novo projeto / solução
- reiniciou a máquina várias vezes
- reparou a instalação vs.net
- fez um IISReset
- removeu o aplicativo da Web do IIS
- usou o botão Criar diretório virtual em Propriedades do projeto do aplicativo Web para criar um novo aplicativo Web no IIS
- mudou a versão do framework de todos os projetos de 3.5 para 4.0
- Abri a solução na minha segunda máquina => mesmo comportamento
- rastreado no Microsoft Connect por erros / problemas semelhantes
- PASSADO 7 HORAS.
Então, isso acontece pela segunda vez na minha vida. da última vez, resolvi-o excluindo a pasta de arquivos temporários do ASP.NET, mas desta vez preciso da sua ajuda.
Respostas:
Clique com o botão direito do mouse na solução -> Propriedades
Procure em Propriedades comuns -> Projeto de inicialização
Selecione vários projetos de inicialização
selecione Iniciar ação nos projetos que você precisa depurar.
fonte
Eu tive o mesmo problema e, depois de pesquisar no Google, encontrei duas soluções típicas para isso:
Verifique se o depurador do Silverlight está ativado no projeto .Web. Abra as propriedades do projeto e selecione o depurador do Silverlight na guia "Web".
Reinicie o Visual Studio e exclua todas as pastas bin e obj.
Mas nada disso funcionou para mim . Então, alguém mencionou um tópico abaixo para tentar usar o IE como navegador. Isso fez com que a depuração e os pontos de interrupção funcionassem novamente!
Editar:
Mais tarde, lutei com o IE9 que não estava funcionando, porque ele se liga ao processo errado. Em vez de anexar manualmente sempre ao processo correto do IE, encontrei um truque :
Agora, o Visual Studio iniciará o IE ao executar o projeto .Web e anexará ao processo correto. Isso deve resolver.
fonte
Sempre que ocorre esse erro específico, a pasta da qual o Visual Studio está carregando os assemblies é diferente da pasta em que o aplicativo Web está sendo executado.
Ou seja, o servidor de aplicativos está executando o aplicativo a partir de
mas o Visual Studio está depurando de
Nota - por vários motivos, eu faço minha depuração com o IIS como host do aplicativo, em vez do dispositivo autônomo que a maioria das pessoas usa. Isso pode influenciar a utilidade da minha resposta!
Atualização :
Para o IIS, o diretório do servidor de aplicativos (ou seja,
C:\dev\MyApplication
acima) é o diretório físico configurado para o aplicativo Web - isso pode ser controlado alterando as configurações básicas do aplicativo.Para o Visual studio, o diretório de depuração (ou seja,
C:\dev\MyOtherApplication
acima) é o diretório em que seussvc
arquivos são encontrados, geralmente o mesmo diretório que ocsproj
arquivo de projeto.fonte
O problema para mim acabou sendo que a caixa de seleção Propriedades-> Compilar-> Otimizar código havia sido ativada na configuração de Depuração. Desativou, reconstruiu e a depuração funcionou normalmente.
fonte
O motivo pelo qual você enfrentou é que os PDBs ("PDB significa Program Database, um formato de arquivo proprietário (desenvolvido pela Microsoft) para armazenar informações de depuração sobre um programa) não estão atualizados, isso pode ser devido a alguns motivos :
1- Como Bevan disse, você pode estar depurando outro aplicativo!
2- Você está depurando outra versão do mesmo aplicativo. Por exemplo, você anexou um aplicativo criado anteriormente com a versão atual do código para depuração sem (re) construí-lo.
Limpar ou reconstruir a solução resolve esses problemas para mim.
Para garantir que o problema não seja seu, tente depurar o mesmo aplicativo com o VS 2008 (receio que possa haver um bug no VS 2010 - ainda é beta!).
fonte
Eu tive o mesmo problema, estava depurando meu projeto e tive que clicar com o botão direito do mouse no projeto e selecionar "nova instância de depuração". Eu só precisava fazer isso uma vez, depois disso funcionou normalmente.
fonte
Este erro surge de vez em quando para mim e sempre posso rastreá-lo de volta às configurações do projeto para a montagem em questão. Você não precisa "esperar" até que seu código não respeite um ponto de interrupção ou até que você defina o ponto de interrupção para saber quais conjuntos têm símbolos carregados.
Quando você executa um projeto no modo de depuração, ele lista na janela Saída quais conjuntos possuem símbolos carregados conforme abaixo (pode ser necessário abrir a imagem em uma nova guia): T
Portanto, neste caso, o BASD.Core.Data.dll NÃO possui símbolos carregados. Assim, você pode comparar as configurações do projeto para esta montagem com as de outra montagem que conseguiu carregar símbolos, para descobrir por que alguns carregam e outros não carregam símbolos.
"Para mim", no entanto, "toda vez que isso acontece é porque as informações de Depuração não estão sendo criadas. Então, abro Propriedades do projeto> Compilar> Avançado em um projeto (C #).
Portanto, para o Basd.Core.Data.dll acima, ou seja, sem símbolos, as configurações avançadas de compilação foram:
Considerando que para o Basd.Core.Configuration.dll, ou seja, um assembly em que eu poderia definir e atingir um ponto de interrupção, as configurações eram:
Portanto, estou produzindo informações de depuração no último projeto e não no primeiro, portanto, minha capacidade de atingir o ponto de interrupção no Basd.Core.Configuration.dll
Observe também que não é suficiente simplesmente ter um arquivo .pdb na pasta bin de um projeto para um determinado arquivo .dll, pois pode estar desatualizado e, portanto, não ser escolhido pelo Visual Studio como um arquivo de símbolo válido para o arquivo .dll você está tentando avançar.
Observe também que alterar as configurações de compilação pode alterar as configurações de informações da compilação e de onde os símbolos são extraídos.
(Percebo que, neste caso, estou no modo Release, mas o método ainda se aplica)
fonte
Ir para Propriedades do projeto -> Compilar -> Avançado ...
Na seção "Saída", selecione "cheio" no menu suspenso Informações sobre depuração
fonte
Verifique se você está executando seu programa no modo DEBUG e não no modo RELEASE.
fonte
Depurar -> Anexar ao processo ->
escolha Depurar estes tipos de código: opção ->
selecione Managed v3.5, v3.0, v2.0 ou Managed v4.5, v4.0
fonte
Acabei de resolver esse problema de acordo com a implantação de aplicativos Silverlight . (Esta resposta é uma duplicata de algumas outras, mas tentarei explicar mais detalhadamente.)
O problema é mais provável que seu aplicativo Silverlight não esteja sendo implantado corretamente no seu aplicativo Web na criação / inicialização. Esse é um problema de referência - é simples de entender, mas não é óbvio na primeira vez em que você o encontra.
Assim como qualquer outra referência de projeto, a saída do projeto referenciado deve ser copiada para a pasta bin do projeto de referência para depuração. Para bibliotecas de classes, isso acontece quando você clica com o botão direito do mouse e seleciona 'Adicionar referência ...'. Para o Silverlight, você deve adicionar uma referência nas Propriedades do projeto.
Isso adiciona uma referência ao aplicativo Silverlight no seu aplicativo da web de hospedagem e garante que o
xap
arquivo seja copiado para o aplicativo da web na criação ou implantação. Isso significa que o aplicativo Silverlight atual e seus arquivos de depuração estão dentro do aplicativo que está sendo depurado e você poderá percorrer o código.fonte
Se você estiver depurando um projeto da web, verifique se o atributo debug = "true" foi definido no seu arquivo web.config:
fonte
Eu tive o mesmo problema no Windows 7 e tentei de tudo : DLLs limpas, lista de módulos investigados, desativado "Just My Code" e assim por diante.
O problema foi resolvido após a execução do Visual Studio "como administrador". Honestamente. Por que a Microsoft não conseguiu me avisar que não está sendo executado "como administrador"? Isso me pouparia algumas horas de trabalho.
fonte
Para mim, o problema era que eu tinha "Otimizar código" ativado na guia Compilar das configurações do meu projeto.
fonte
Teve o mesmo problema
Por algum motivo, uma das DLLs foi registrada no GAC, portanto, sempre teve uma versão diferente do código.
Depois que eu o removi do GAC, o problema foi resolvido
fonte
Para aqueles que estão usando o Visual Studio 2008, não o Visual Studio 2010 e estão recebendo esse erro. As respostas acima não me ajudaram nessa situação, por isso estou compartilhando minha experiência.
Se você estiver depurando um aplicativo Web do IIS no Visual Studio 2008, anexando ao processo w3wp.exe, em vez de usar o ASP.NET Development Server para depuração (inicie com depuração), este pode ser o seu problema:
O Visual Studio ainda pode estar fazendo referência a um arquivo de símbolo (arquivo usado durante a depuração) da sua DLL a partir de um processo do IIS desatualizado. E esse arquivo de símbolo foi recriado por uma recompilação do código-fonte .NET, mas o processo do IIS ainda faz referência ao arquivo de símbolo antigo.
Consertar:
Apenas pare a depuração no Visual Studio, reinicie o aplicativo Web e reconecte-se ao processo. Os pontos de interrupção devem mudar de amarelo (quando você vê esse erro) para vermelho novamente.
========================
Mais coisas para tentar (encontrou nova situação hoje):
Faça cada marcador no link abaixo, UM DE UMA VEZ, mas repita meus passos abaixo com cada um que tentar.
http://carnotaurus.philipcarney.com/post/4130422114/visual-studio-debugging-issue-with-files-of-the-same
1.) Pare a depuração (pressione o ícone do quadrado vermelho) no Visual Studio
2.) Solução limpa
3.) Compile a solução
4.) [INSIRA A INSTRUÇÃO DO BOLETIM AQUI]
5.) Ferramentas> Anexar ao processo (ou iniciar com a depuração)
6.) Inicie o programa ao qual você está se conectando e execute-o para que seu código seja atingido
6 explicou:
Se você estiver anexando ao nunit.exe, abra o NUnit e execute um teste para que seu ponto de interrupção seja atingido
Se você estiver se conectando ao w3wp.exe (site do IIS), abra o site no navegador e vá para a página que atingirá seu ponto de interrupção
EDITAR:
Hoje notei que, se você tentar depurar em um projeto que não está definido como o projeto de inicialização, ele mostrará isso. Quando você se conecta ao processo w3wp.exe, ele pensa em depurar o projeto definido como o projeto de inicialização. Para resolver, clique com o botão direito do mouse no projeto de aplicativo da web e escolha "Definir como projeto de inicialização". Em seguida, tente anexar novamente ao seu processo.
fonte
O cenário é o seguinte: um projeto em particular é o seu projeto de inicialização (por exemplo, possui o método Main). Esse projeto está referenciando outros projetos em sua solução. Os pontos de interrupção nos outros projetos não são atingidos.
Solução rápida: ao criar sua solução, procure no caminho de saída Build (geralmente bin \ Debug) o projeto de inicialização. Veja os arquivos DLL e PDB dos projetos aos quais você está fazendo referência. Verifique se a data da última modificação foi a data em que você criou sua solução. Se não estiverem, copie-os do caminho de saída do Build para cada projeto nos seus projetos de inicialização. Por exemplo:
O projeto A possui principal. Ele faz referência ao Projeto B. Seus pontos de interrupção não estão sendo atingidos no Projeto B. Copie o arquivo DLL e PDB do caminho de saída do Projeto B para o caminho de saída do Projeto A. Em seguida, execute sua solução. O ponto de interrupção agora será atingido.
Agora você precisa descobrir por que o Projeto A não está copiando o arquivo DLL e PDB do Projeto B. As respostas aqui cobrem a maioria dos cenários. Um cenário não abordado é garantir que seus projetos e soluções estejam vinculados ao TFS corretamente. Eu tinha alguns projetos vinculados e outros não vinculados corretamente. Isso causou o problema para mim. Depois de corrigir isso, o problema desapareceu e eu não precisei mais copiar os arquivos DLL e PDB.
fonte
As soluções para o mesmo problema no meu caso foram as seguintes combinações de etapas:
fonte
Para corrigir esse problema no Web.config, bastava adicionar
debug="true"
O que me ajudou a encontrar essa solução foi examinar as janelas dos módulos durante a depuração e constatar que, para minhas DLLs ASP.NET carregadas, eu tinha: O binário não foi criado com informações de depuração.
fonte
Eu tive o mesmo problema, mas no VS2013 para um aplicativo da Web. Para mim, a resposta foi atualizar a configuração da compilação para a solução: -
Depois disso, todos os meus pontos de interrupção começaram a funcionar.
fonte
Ok, aqui vamos nós:
(Em um "aplicativo silverlight": verifique primeiro se o silverlight está marcado em "web" nas "propriedades" do projeto do servidor - se isso não foi resolvido, tente isso abaixo)
Na primeira vez, execute o seguinte procedimento: devenv.exe / ResetSettings e 1: no menu superior, clique na tag de depuração 2: clique em opções e configurações 3: Em "depuração" e em "localização geral", habilite a etapa de origem da estrutura .net " 4: Marque a caixa. 5: E agora todos os símbolos serão baixados e reconfigurados :)
Se isso acontecer novamente, basta limpar a pasta onde estão os símbolos:
1: No menu superior, clique na tag de depuração 2: clique em opções e configurações 3: Em "depuração" e em "símbolos", localize o botão "cache vazio de símbolos" e clique nele.
fonte
Abra a URL do aplicativo Web no navegador e, no IDE do VS.Net, use Ferramentas -> AttachtoProcess
em seguida, anexe ao aspnet_wp.exe.
O depurador começará a funcionar
fonte
Eu tive que desinstalar manualmente todas as instâncias da .dll do registro e todas as instâncias da .dll da minha unidade local. Desinstalei / reinstalei meu aplicativo e agora estou atingindo pontos de interrupção! Desperdiçou meio dia fazendo isso :(.
fonte
Tentei renomear o
.pdb
arquivo naobj\debug
pasta e fiz uma solução limpa e reconstruí-lo.Ele criou um novo
.pdb
arquivo e eu consegui atingir os pontos de interrupção corretamente.fonte
Eu tive o mesmo problema - perdi muito tempo tentando fazer a depuração funcionar no Visual Studio.
Acabou sendo Nuget - eu tinha 3 versões do Newtonsoft.Json (em 7 projetos C #). A solução seria compilada, mas não era depurável.
Corrigi o problema executando o seguinte no Console do Gerenciador de Pacotes do Nuget:
PM> Pacote de atualização Newtonsoft.Json
fonte
Para o meu aplicativo WPF, excluí a pasta do aplicativo, fiz "Get Latest" do controle de origem novamente e reconstruí-o. Todos os pontos de interrupção funcionando muito bem agora.
fonte
Tente definir o Silverlight Application Project como um projeto de inicialização: clique com o botão direito do mouse em projeto -> 'Definir como projeto de inicialização. Em seguida, pressione F5 e veja se você consegue capturar pontos de interrupção ...
Tente excluir os dados de navegação / temperatura no seu navegador toda vez que você fizer alterações no aplicativo silverlight
fonte
Outra anedota que pode ser útil -
Encontrei esse problema quando um dos meus projetos estava usando referências de arquivo de uma pasta de saída do Release. Quando os resultados da compilação foram colocados em uma pasta Mercadorias, essas DLLs de versão substituíam as DLLs de depuração.
A solução foi garantir que, no arquivo csproj, o HintPath da minha referência fosse
<HintPath>..\..\Core\Goods\$(Configuration)\MyFramework.dll</HintPath>
e não
<HintPath>..\..\Core\Goods\Release\MyFramework.dll</HintPath>
fonte
Eu tive esse problema quando em um cliente em que - para cada solução de aplicativo - eles copiavam a maioria dos assemblies compartilhados para uma pasta " Referências " e os adicionavam à solução como " Itens da solução " e como " Projeto " na solução.
Ainda não sei por que, mas alguns deles foram depuráveis, outros não, embora nas configurações de Referências para as montagens os caminhos completos corretos tenham sido especificados.
Esse comportamento imprevisível quase me deixou louco :)
Resolvi isso removendo todos os assemblies da pasta " References " para os quais havia projetos com código-fonte e mantendo um rastreamento muito bom das informações de versão para assemblies compartilhados.
fonte
Eu tive um problema semelhante, exceto que o meu problema era bobo - eu tinha duas instâncias do servidor da web interno executando duas portas diferentes E eu tinha meu projeto -> propriedades -> web -> "Iniciar URL" apontando para uma porta fixa, mas o aplicativo da web não estava realmente em execução nessa porta. Portanto, meu navegador estava sendo redirecionado para o "URL inicial", que se referia a 1539, mas a instância de código / depuração estava em execução na porta 50803.
Alterei o servidor da Web incorporado para rodar sob uma porta fixa e ajustei meu "URL de início" para usar essa porta também. projeto -> propriedades -> web -> seção "Servidores" -> "Usar o Visual Studio Development Server" -> porta específica
fonte