Como encontrar o motivo da falha na compilação sem nenhum erro ou aviso


144

Eu tenho um WebApplication que contém referência a serviços WCF.

Ao criar usando o Visual Studio 2010, o Build falha sem nenhum erro ou aviso. No entanto, a construção do .csprojuso MsBuildé bem-sucedida.

Não consigo descobrir o que devo tentar no Visual Studio para resolver / diagnosticar o problema. Você pode ajudar?

EDITAR:

Descobri que a construção falhou,

  1. Do texto exibido na barra de status.
    insira a descrição da imagem aqui

  2. Na janela de saída:

    ========== Build: 0 succeeded or up-to-date, 1 failed, 0 skipped ==========

5
como você sabe que sua construção está falhando?
Sam I am diz Restabelecer Monica

5
Existe alguma coisa na guia de saída?
Malícia

15
Tente aumentar a verbosidade da janela de saída no Visual Studio. Pode ajudar a determinar o problema. Como aumentar o nível de verbosidade: blogs.msdn.com/b/saraford/archive/2008/10/07/…
Maxim Kornilov

6
Você já tentou reiniciar o VS2010 ou até mesmo reiniciar o seu PC?
Comecme

2
@NahuelI. Eu tenho problema semelhante novamente em outro projeto, quando eu procurei stackoverflow eu tenho a minha própria pergunta de volta :-)
Abhijeet

Respostas:


119

Acabei de encontrar uma situação semelhante. No meu caso, uma ação personalizada (do pacote MSBuildVersioning disponível em Nuget.org - http://www.nuget.org/packages/MSBuildVersioning/ ) que apareceu no destino BeforeBuild do arquivo csproj estava falhando sem acionar nenhuma mensagem de erro no local normal.

Consegui determinar isso definindo a "verbosidade de saída da compilação do projeto MSBuild" (na última guia Ferramentas do Visual Studio [Caminho: Ferramentas> Opções> Compilar e Executar ]) como " Diagnóstico ", como mostrado abaixo. Isso mostrou que a ação personalizada (no meu caso, HgVersionFile) foi o que havia falhado.

Captura de tela do Visual Studio mostrando a configuração modificada.


2
Excelente encontrar Richard - informação realmente útil quando você definir ambos os níveis de verbosidade para diagnóstico
Dai Bok

3
Para quem não sabe como eu: para usar esse método, talvez seja necessário pesquisar o conteúdo da janela de saída. Meus erros de construção estavam sendo ocultados por #pragma warning disableinstruções e só eram visíveis quando procurei 'error' na janela de saída.
sirdank

Depois de definir minha verbosidade para diagnóstico, descobri que estava recebendo uma System.OutOfMemoryException. Eu estava usando 98% da memória disponível do meu computador. Esta é uma ótima resposta!
precisa saber é o seguinte

1
Isso também resolve o problema no VisualStudio 2017. Muito obrigado.
H. Aydin

1
Para mim, eu estava usando o Queue New Build para criar no TFS e a caixa de diálogo Queue Build possui uma verbosidade na segunda guia. Eu poderia aparecer e ver o problema no log de build.
AaronLS

135

O Build + Intellisense engoliu as mensagens de erro. Selecionar Build Only os exibiu.

Captura de tela


Acabei de entrar na situação em que nada disso mostra erro :(
Imad

1
Uau, isso funcionou para mim, como diabos isso é uma coisa na nova versão do VS 2019. Valeu cara!
Carter

1
@AbuAbdullah Trabalhou para mim. Bom trabalho em ajudar os outros.
nam

obrigado, salvou o meu dia
Bikram Limbu 02/07

59
  • Se a solução contiver mais de um projeto, tente construí-los um de cada vez.
  • Tente reiniciar o Visual Studio.
  • Tente reiniciar o computador.
  • Tente " Reconstruir tudo "
  • Tente " Solução Limpa ", remova os arquivos " vspscc " e " vssscc ", reinicie o Visual Studio e, em seguida, " Reconstrua Tudo ".

105
E quando isso não ajuda, devo apenas encontrar um novo emprego?
Alex Zhukovskiy

2
Apenas reiniciar o VS2013 me ajudou. Eu estava trabalhando em uma VM com recursos limitados, mas não tenho certeza se isso tinha algo a ver com isso.
Jmaurier

2
Você não pode limpar a solução se estiver tendo esse problema.
H. Aydin

1
O que me ajudou foi fechar todas as instâncias do VS (não o suficiente para fechar o defeituoso), excluir a .vspasta e iniciar o VS novamente.
EliSherer 15/08/19

22

O reinício do VS (2013 Pro, Win 8.1) fez isso por mim.


Comunidade VS 2015 Win 7 com um único projeto MVC. Mesma resolução.
Maplemale

2
VS 2017 Community Win 10. Acho que deveria ter tentado desligá-lo e ligá-lo novamente antes de procurar uma solução!
DreamTeK 13/06/19


9

Eu quero expandir a resposta de Sasse .

Para corrigir o problema com a Atualização 2 do Visual Studio 2015, eu tive que criar cada projeto, um de cada vez, e observar a janela de saída após cada compilação.

Um projeto me deu

"O nome do tipo ou espaço para nome 'SomeNamespace' não existe no espaço para nome 'BeforeSomeNamespace' (está faltando uma referência de montagem?)".

Não houve erro na janela Lista de erros, mas a montagem tinha um sinal de aviso amarelo em "Referências".

Vi então que o projeto de referência tinha como alvo 4.5.1 e o projeto mencionado 4.6.1. Alterar 4.6.1 para 4.5.1 permitiu que a compilação geral fosse bem-sucedida.


1
Bem, a construção de um projeto por vez pode não ser necessária, mas uma coisa é certa: observe atentamente a janela de saída (melhor ainda copie / cole no bloco de notas e use Ctrl + F find) para encontrar a palavra "ausente". Ele não aparece na lista de erros, mas com certeza interrompe sua solução. -.-
Dovydas Navickas 2/16/16

5

Nada estava funcionando para mim, então excluí o arquivo .suo, reiniciei o VS, limpei o projetado e a compilação funcionaria.


5

Parece que existem várias respostas para essa pergunta, então adicionarei as minhas por experiência pessoal, na esperança de economizar tempo / estresse para alguém.

Verifique se todos os projetos em sua solução estão direcionados para a mesma versão do .NET.

Semelhante ao OP, houve 0 erros, mas a construção continuou falhando. No entanto, havia uma entrada de aviso (enterrada entre várias centenas de avisos XML inúteis ...) dizendo que um projeto estava direcionado para uma versão .NET diferente do que um projeto que a referenciava. A questão toda era que um projeto na minha solução estava direcionado para o .NET 4.5.2, quando o restante estava direcionado para o 4.5.1. ele deve trabalhar mesmo com essa discrepância (daí por que era apenas um aviso) mas, infelizmente, ele quebrou a compilação.

O estranho é que ele foi construído / funcionou bem por um tempo, mas de repente a construção começou a falhar uma vez, causando esse problema. Não tenho certeza do que fiz para começar a reclamar sobre diferentes versões de destino do .NET, mas sinto que existem apenas alguns mistérios no Visual Studio que nunca serão resolvidos.


1
Acontece que eu adicionei um novo projeto e ele tinha uma versão diferente da estrutura de destino .Net - eu corrigi isso e, embora a compilação ainda falhe, fui capaz de ver o erro que estava quebrando a compilação. Obrigado.
Fijjit 4/11/16

4

Vá para a janela de saída, procure por 'erro' na janela de saída, TADA


3

Primeiro, "Limpe a solução" e depois reconstrua o soln.

Se não funcionar, feche a solução e reinicie a solução.

Tente estas coisas, a esperança definitivamente funciona.


3

Em outra possibilidade, o Visual Studio precisa ser executado como administrador, isso pode estar relacionado à implantação no servidor IIS local ou a outra necessidade de implantação.


3

isso pode acontecer quando um dos projetos mencionados é uma versão superior da estrutura .NET que o seu projeto atual.


3

Eu tive esse mesmo problema e rastreei esse problema até as opções da Lista de erros "Build + Intellisense".

Se esta opção estiver selecionada, nenhum erro será mostrado na lista. Alterne para " Somente compilação " e os erros aparecem conforme o esperado.

Parece um bug no Visual Studio. Reiniciar o visual studio resolveu esse problema .


2

Eu tive um problema semelhante após adicionar um novo projeto (chamado "TestCleaner") à minha solução: Falha na compilação, sem erros.

Aumentei a verbosidade da saída (consulte as instruções de Richard J Foster) e procurei na saída por "falha". Descobri rapidamente qual projeto estava falhando e por que: o projeto "TestRunner" falhou com o " erro CS0246: O tipo ou nome do namespace 'TestCleaner' não pôde ser encontrado" (mesmo que nenhum problema tenha sido destacado no código).

Verificando as referências do TestRunner, com certeza a referência ao TestCleaner foi marcada como não resolvida e o caminho estava ausente nas propriedades de referência. Excluir e adicionar novamente não o corrigiu. Novamente, não há explicação para o motivo.

referência não resolvida

Finalmente descobri a causa: "TestCleaner" estava usando uma estrutura de destino diferente dos outros projetos. Foi .Net 4.5.2; os outros eram 4,5.


2

Por uma questão de conclusão e talvez ajudar alguém a encontrar o mesmo erro novamente no futuro, eu estava usando a interface de metro do Mahapps e alterei o XAML de uma janela, mas esqueci de alterar a classe parcial no code-behind. Nesse caso, a construção falhou sem erro ou aviso, e eu consegui descobrir isso aumentando a verbosidade da saída nas configurações:

Painel de erro

painel de saída


5
selecione também 'build only' e não 'build + intellisense' no filtro de erros.
Niico 15/05

2

Eu tive o mesmo problema. A janela da lista de erros possui 2 menus suspensos "Mostrar itens contidos em" e "Mostrar problemas gerados". Esses nomes são visíveis após passar o mouse sobre o menu suspenso. O menu suspenso "Mostrar problemas gerados" foi definido como "Build + IntelliSense" e, após a alteração para "Somente compilação", os erros apareceram na lista.


2

Para mim, esse Target Frameworkera o problema.

Meu projeto Target Frameworkera 4.5.2e o projeto referenciado Target Frameworkera 4.6.1.

Uma vez que eu atualizei do meu projeto Target Frameworkpara 4.6.1, a questão ficou fixo.


1

Eu enfrentei o mesmo problema! Apenas apague a pasta bin e reinicie o seu VS. Isso é tudo. testado em VS 2013.


Quando tentei resolver isso, excluindo a pasta bin e obj, foi corrigida. Também exigi direitos de administrador para excluir a pasta obj, para que algo muito estranho tivesse acontecido.
DAG

1

O que resolveu para mim foi excluir a .vspasta da raiz da solução e reiniciar o Visual Studio.

Talvez também seja importante dizer que, embora os erros não estivessem aparecendo no painel Lista de Erros, eles ainda estavam presentes na Saída da compilação.


1

Tente criar seu projeto a partir da linha de comando do Powershell:

dotnet build

Em seguida, você poderá ver qualquer erro na saída da linha de comando, mesmo se o Visual Studio estiver reproduzindo ocultar e procurar com mensagens de erro de compilação.


0

Isso aconteceu comigo depois de adicionar uma nova página a um projeto asp.net.

O que fiz foi excluir a página, fazê-la construir novamente com êxito.

Então eu adicionei de volta a página com todo o código comentado. Sucesso.

Depois, descomentei o código pouco a pouco e tudo funcionou.


0

Eu tive o mesmo problema depois de excluir alguns formulários. Os erros apareceram quando entrei no código e fiz uma "Mostrar definição" para um dos controles que removi.

Eu também estava mirando uma estrutura mais alta em um dos meus projetos, então esse poderia ter sido o problema também.


0

Eu tentei tudo, mas nada funcionou no meu caso, então eu mudei essas configurações mencionadas que resolveram o problema muito bem para mim. Tente se puder de alguma ajuda para os telespectadores. Essas configurações podem variar de acordo com a sua situação, mas certifique-se de criar todas as DLLs incluídas com as mesmas configurações que você manteve inicialmente (mencionadas na imagem).Definições de configuração

Imagem aqui.

Felicidades!


0

Se o pacote de nuget 'Microsoft.Net.Compilers' estiver instalado, verifique se ele se adequa à versão do Visual Studio (versão Build Tools).

As versões 1.x significam C # 6.0 (Visual Studio 2015 e atualizações). Por exemplo, 1.3.2

Portanto, não atualize para a versão acima da 1.x se você usar o VS2015

https://stackoverflow.com/a/44397905/3862615


0

Eu tinha um projeto muito antigo em uma máquina mais antiga. O projeto estava sendo construído corretamente quando desliguei a máquina. Hoje, estou recebendo erro de compilação, mas nenhuma mensagem de erro. Depois de tentar algumas sugestões de cima, sem sorte.

No Visual Studio 2015, ativei o MSBuild detalhado em FERRAMENTAS> Opções> Projetos e soluções> Construir e executar

Isso me deu alguns detalhes sobre a compilação, mas nenhum erro. Depois disso, tentei verificar Extensões e atualizações (Ferramentas> Extensão e Atualizações) e encontrei algumas delas necessárias para atualização.

O pacote Nuget foi o culpado, após a atualização do Nuget - a compilação foi bem-sucedida.

insira a descrição da imagem aqui



0

Como tudo não funcionou, descobriu que os erros não são exibidos ao abrir o projeto como solução (.sln), enquanto o erro é exibido ao abrir o projeto como um projeto.


0

Eu tive o mesmo problema, mudei Ferramentas -> Opções -> Projetos e soluções / Compilação e execução -> MSBuild projeto construir verbosidade do arquivo de log [ Diagnóstico ]. Esta opção mostra erro no log, devido a alguns motivos porque o meu VS não mostra erro na guia Erros!

insira a descrição da imagem aqui

Faça as configurações acima e copie a saída no bloco de notas / editor de texto e procure por erros. Ele mostrará todos os erros.


0

Reiniciar o Visual Studio funcionou para mim. Tente também reiniciar o Visual Studio normalmente (não é executado como administrador). Tente reiniciar o sistema e repita a etapa acima.


0

Uma maneira diferente de reproduzir esse sintoma:

Adicionei um novo projeto a uma solução existente e a saída da compilação relatou erros como "o tipo ou o nome do espaço para nome X não pôde ser encontrado ...", mas nenhum erro foi apresentado na lista de erros.

As classes a que me referi estavam em outros projetos (que foram referenciados) na mesma solução.

Acontece que eu, por engano, selecionei uma versão anterior do .net no novo projeto. Depois que mudei para a mesma versão dos outros projetos, tudo foi construído sem erros.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.