Estou trabalhando em um projeto da Web no Visual Studio 2008. Quando clico em F12 (ou clique com o botão direito do mouse e selecione Ir para a definição), o Visual Studio vai consistentemente para o arquivo de metadados em vez de ir para a fonte.
Alguns pontos:
- Todo o código fonte é c #, não existe VB.Net
- Todos os projetos estão na mesma solução
- Tudo é uma referência de projeto em oposição a uma referência de arquivo (verificada e verificada duas vezes)
- Eu tentei a abordagem Clean / Rebuild Solution (até o ponto de limpar o diretório Temp, o diretório Temporary ASP.NET Files, etc.).
Alguém mais viu esse comportamento e / ou sabe como corrigi-lo?
visual-studio
pfunk
fonte
fonte
Respostas:
Bem, outro desenvolvedor encontrou a resposta. O projeto específico com o qual tivemos um problema foi originalmente adicionado como uma referência de arquivo, depois removido e adicionado como uma Referência de Projeto. O Visual Studio, no entanto, manteve os dois no arquivo csproj do site, causando o problema. Ele entrou e editou manualmente o arquivo csproj para remover a referência do arquivo para o projeto do problema e tudo foi corrigido agora
fonte
Isso acontece quando você não adiciona referência como projeto, mas aponta para uma dll ou exe usando a guia Procurar na caixa de diálogo Adicionar referência. Se você adicionar referência usando a guia Projetos, deverá ir diretamente ao código-fonte ao selecionar Ir para definição.
No entanto, se você instalar o ReSharper , irá para o código-fonte mesmo se tiver adicionado sua referência a uma dll / exe usando a guia Procurar.
fonte
Parece que também precisa ser configurado no Resharper. Meu Visual Studio não navega para o código-fonte do .NET Framework até eu ativá-lo no Resharper.
fonte
1. feche sua solução.
2. exclua o
<name of the solution>
arquivo .suo oculto na pasta em que o<name of the solution>
arquivo .sln da sua solução existe.3. abra sua solução.
4. reconstrua sua solução.
fonte
Para aqueles que usam o VS 2017 (estou na versão 15.3.4 no momento), aqui estão as etapas simples:
.vs\[your solution name]\v15
.suo
arquivoIsso foi corrigido para mim: o F12 abriu o arquivo de origem real, não a versão "dos metadados".
fonte
O Visual Studio geralmente sofre com o problema de acessar os metadados, e não o seu projeto, se você mudar o local onde está construindo o projeto, ou seja, você pode ter várias versões para testar as coisas.
Simplesmente exclua a referência e adicione-a imediatamente de volta e tudo será resolvido.
fonte
A solução marcada nem sempre funciona. Você deve verificar se o GUID do projeto referenciado nos arquivos do projeto é o GUID correto para o projeto que você está tentando referenciar. O Visual Studio permite que eles fiquem fora de sincronia em algumas circunstâncias. Você pode obter o GUID do projeto no arquivo do projeto com um editor de texto. Portanto, se o projeto A, projeto de referência B. Abra o projeto B.csproj no editor de texto, copie o GUID do projeto da marca. Em seguida, abra o projeto A.csproj no editor de texto e verifique se você está usando o GUID correto. Procure o nome do projeto "B" neste caso. Deveria estar em. Substitua o GUID na tag pela correta. Salve e recarregue. Obviamente, também certifique-se de que as referências baseadas em arquivo para seus projetos sejam removidas. Você deseja apenas referências de projeto.
fonte
Eu matei todas as instâncias do VS, excluí o SUO, iniciei o sln e funcionou para mim ...
fonte
Remova a DLL de referência, Compile (obterá erros), ADICIONE A referência (você removeu) e compile novamente ... F12 em sua função deve funcionar (funcionou para mim).
fonte
Eu descobri como resolver meu problema neste post , talvez também funcione para alguns de vocês.
Eu segui estes passos:
(Acredito que as etapas 3 ou 4 regeneram o arquivo de banco de dados intellisense quando ele está ausente)
Intellisense, "vá para a definição" e "encontre todas as referências" devem estar funcionando novamente.
fonte
No meu caso, (usando o Visual Studio Professional 2015), quando eu desabilitei o designer XAML, o F12 parou de funcionar. Assim que eu reverto as alterações e reinicio o Visual Studio, o F12 funcionou novamente.
Verificou o padrão várias vezes para confirmar e depois postou. Espero que ajude alguém.
fonte
Sintoma:
O Visual Studio 2010 Ultimate falhou repetidamente em encontrar referências a funções, # define, inclui etc. ao usar os recursos "Ir para definição" ou "Ir para declaração" ou "Localizar todas as referências" - estranhamente, o Intellisense estava funcionando.
Consertar:
O arquivo .sdf será reconstruído automaticamente analisando os arquivos de inclusão na sua solução
fonte
Para mim, a solução GUID não funcionou e não consegui encontrar meu arquivo .ncb. (Ou talvez eu seja preguiçoso e não pareça duro o suficiente, mas isso não é importante.) A reconstrução e a reinicialização do visual studio também não ajudaram.
O que fiz foi fechar o visual studio e excluir o arquivo .dll e .pdb que estava sendo referenciado na parte superior do arquivo Meta Data ao qual meu intellisense continuava vinculado. No meu caso, isso significava que eu excluí meu arquivo .dll e seu arquivo .pdb de Utilities / bin / Release. (Utilitários é o nome do projeto .dll com o qual estava tendo problemas.) Em seguida, reiniciei o visual studio e reconstruí o .dll e, em seguida, toda a solução. Sem mais problemas!
fonte
Acabei de encontrar outra causa. Atualizei meu projeto da Web para 4.0, mas deixei as bibliotecas de classes em 2.0. Nesse ponto, todas as bibliotecas de classes na minha solução foram tratadas como referências de arquivo do meu projeto da web. Pode ajudar alguém ...
fonte
Eu enfrentei o mesmo problema e um dos colegas me deu a seguinte solução e funcionou! Se nenhuma das opções acima funcionar para você,
fonte
Eu fiz todas as etapas sugeridas, mas nada foi alterado;
finalmente, clique com o botão direito do mouse e adicione o menu de referência, guia projeto
Problema classificado. Espero que isso ajude alguém.
fonte
Os passos abaixo funcionaram para mim.
<Reference Include="">
Excluir a linha
fonte
Depois de excluir os arquivos DLL do Visual Studio primeiro e adicioná-los manualmente novamente a partir do Gerenciador de Soluções -> Site -> Adicionar -> Referência e ativar Aplicativos de 32 bits no IIS, foi corrigido por mim.
fonte
# 1
Marque "View - Object Browser" e se você vir mais de um assembly com o mesmo nome - é por isso que está recebendo esse erro.
Para nós, foi um bug no VS 2019:
Se você tiver "auxiliares de barbear" do ASP.NET em
App_Code
pasta, o Visual Studio 2019 interpreta isso como um assembly diferente, mas com o mesmo nome, que oculta o assembly real.Não há outra solução senão reescrever esses auxiliares em visualizações parciais ou auxiliares de HTML (você precisará fazer isso de qualquer maneira se planejar migrar para o .NET Core).
Veja esta solução alternativa no site da MS e atualize o bug para que a Microsoft o corrija
https://developercommunity.visualstudio.com/solutions/1008795/view.html (vote por favor)
# 2
Outro motivo pelo qual o mesmo assembly pode ser carregado duas vezes no navegador de objetos é se você tiver um projeto de teste de unidade que inicia o processo iis-express e nunca o mata adequadamente.
fonte
fonte
No meu caso, eu havia mudado recentemente
para "true" no arquivo .csproj do meu site (para encontrar erros de compilação nos meus arquivos de exibição do Razor: http://forums.asp.net/t/1909113.aspx?How+to+have+Visual+Studio+2012+returned + compilar + erros + em + razor + sintaxe + erro + em + asp + net + web + página + 2 + ) e, quando eu construí, estava recebendo erros do meu diretório / obj / Debug / do meu site. Em qualquer um desses arquivos (desatualizados), clicar com o botão direito do mouse e selecionar "Ir para definição" me forneceria a versão [metadados].
Então, para mim, nenhuma das soluções aqui funcionou, porque eu não estava começando de um arquivo que estava realmente no meu projeto. Excluiu todo o diretório / obj / Debug /, os erros desapareceram e, de qualquer arquivo normal, posso usar corretamente Ir para a definição.
fonte
Acabei de encontrar esse problema no VS 2013. Algo que eu não conseguia isolar estava alterando o GUID no arquivo CSPROJ. Como os arquivos CSPROJ são verificados no SVN, eu não poderia simplesmente mudar o GUID no meu desenvolvedor local. Em vez disso, eu estava constantemente revertendo o SVN a mudança local toda vez que acontecia.
Primeiro, tive que resolver o problema de mudança do GUID.
Extraia o valor do arquivo CSPROJ original.
{B1234567-5123-4AAE-FE43-8465767788ED}
Abra o arquivo SLN através de um editor de texto, NÃO VS.
Localize a referência do projeto na solução.
Projeto ("{FAE12345-3210-1357-B3EB-00CA4F396F7C}") = "Some.Project", ".... \ assemblies \ Some.Project \ Some.Project.csproj", "{B7654321-5321-4AAE- FE3D-ED20900088ED} "EndProject
O primeiro GUID listado é o GUID da solução. Para cada projeto mencionado no seu SLN, você deve ver esse valor repetido no primeiro argumento. O GUID após o arquivo .csproj é o que você deseja substituir pelo GUID original.
Isso deve resolver o primeiro problema, mas o destino "Ir para a definição" nos metadados não é resolvido. Em nosso arquivo SLN, há um projeto mestre (nosso site), portanto, sua entrada no arquivo SLN deve conter uma entrada ProjectSection com vários valores GUID. Aqui está um exemplo:
Observe que o GUID ausente nesta coleção é o do meu projeto intocado.
fonte
Eu tinha uma referência circular entre os dois projetos envolvidos (que é um não-não). Tive que reestruturar um pouco meu código para resolvê-lo, pois os dois projetos eram verdadeiramente dependentes um do outro. A remoção de uma das referências resolveu o problema do intellisense. Era logicamente falho e eu provavelmente não teria notado sem esse erro!
fonte
Este funcionou para mim:
fonte
Isso pode acontecer se você estiver tentando pular para a definição em um projeto que foi descarregado (Indisponível). Clique com o botão direito do mouse no projeto descarregado e selecione "Recarregar Projeto".
fonte
O melhor palpite é que você não possui informações de depuração. Talvez você tenha várias cópias do seu assembly em disco e ele não possui o arquivo .pdb.
Faça uma pesquisa pelos nomes de montagem de seus projetos e exclua todos eles e reconstrua.
fonte