As compilações de projeto do Visual Studio 2015 falharam, mas sem erros

110

Todas as compilações do meu projeto falham, mas não vejo nenhum erro. Tentei limpar e reconstruir, mas não funcionou.

Alterei o detalhamento de saída do MSBuild para 'Diagnóstico' esperando que isso me ajudasse a identificar o problema e agora estou preso. Esta é a aparência da saída:

1>Project 'ProjectMM.Data.Models' is not up to date. Input file 'C:\Projects\ProjectMM\ProjectMM.Data.Models\ProjectMM.Data.Models.csproj' is modified after output file 'C:\Projects\ProjectMM\ProjectMM.Data.Models\bin\Debug\ProjectMM.Data.Models.pdb'.
All packages are already installed and there is nothing to restore.
1>------ Build started: Project: ProjectMM.Data.Models, Configuration: Debug Any CPU ------
2>Project 'ProjectMM.Data' is not up to date. Input file 'C:\Projects\ProjectMM\ProjectMM.Data\ProjectMM.Data.csproj' is modified after output file 'C:\Projects\ProjectMM\ProjectMM.Data\bin\Debug\ProjectMM.Data.pdb'.
2>------ Build started: Project: ProjectMM.Data, Configuration: Debug Any CPU ------
3>Project 'ProjectMM' is not up to date. Input file 'c:\projects\projectmm\projectmm\app_start\bundleconfig.cs' is modified after output file 'C:\Projects\ProjectMM\ProjectMM\bin\ProjectMM.pdb'.
3>------ Build started: Project: ProjectMM, Configuration: Debug Any CPU ------
========== Build: 0 succeeded, 3 failed, 0 up-to-date, 0 skipped ==========
Rob Greenlee
fonte
1
A janela da lista de erros está aparecendo ou não?
Karthik
Vá para o menu Exibir -> Selecionar Lista de Erros e verifique se há erros. Idealmente, você deve obtê-lo na Lista de Erros. Mantenha a janela da Lista de Erros aberta e tente construir o projeto e veja o que acontece.
Karthik
4
Então, aqui está o que aconteceu: eu postei esta pergunta e presumindo que não receberia uma resposta imediata, fechei o projeto. Você me pediu para abri-lo novamente, abrir a lista de erros e reconstruir. Funcionou perfeitamente, sem erros, tudo bem sucedido!
Rob Greenlee
@RobGreenlee: Veja minha resposta, aposto que a "guia Erro" estava ativa quando você reabriu a solução!
jpo38 de

Respostas:

100

Eu tive o mesmo problema e fechar e reabrir o Visual Studio resolve tudo.

Eu também tentei a solução de limpeza e a falha de limpeza.

Pode haver outras situações em que isso não funcione, mas, no meu caso, reiniciar resolveu isso para mim.

Carson Evans
fonte
22
Se não ajudar, reinicie. Freqüentemente encontro esse problema quando adiciono um projeto à minha solução, com outro framework Target referenciando diferentes projetos de framework.
Bastiaan Linders
7
No meu caso, reiniciar o VS ou limpar a solução não ajudou. No entanto, remover o .suo da pasta .vs resolveu o problema
cellik
@cellik: Não funciona no meu caso. O que vale a pena ... Estou usando a edição Enterprise.
KMC de
4
Tive o mesmo problema depois de alterar o fuso horário do meu computador do fuso horário CEST (GMT + 1) para o fuso horário dos EUA (GMT-7), parece que não foi possível lidar com o carimbo de data / hora da última compilação no futuro. Depois de reiniciar o VS está tudo OK.
martinh_kentico 01 de
2
Excluir os arquivos .suo também funcionou para mim, mas reiniciar e limpar não.
Johann Marx
117

É possível que você não esteja vendo todos os erros de compilação.

Alterando a lista suspensa após o ícone "Mensagens" de "Build + Intellisense" para "Build Only", você poderá ver erros lançados durante a compilação que não são detectados pelo Intellisense. Veja a imagem abaixo:

Construir

S.Mohamed Mahdi Ahmadian zadeh
fonte
3
Cara você é meu salvador!
KMC de
19
Por que os erros "Build Only" não estariam presentes em "Build + Intellisense"?
CodyF
Isso ajudou a mostrar os erros na lista de erros, mas as linhas de código com os erros não têm sublinhados em vermelho. Acho que isso deve ser um problema do Intellisense.
Drew em
Funciona para mim. O meu foi mudado para Build e Intellisense, que escondia erros de construção. Build Only funciona e exibe erros de compilação.
HerrimanCoder
1
O senhor salvou o dia para mim .. ótimo trabalho .. Muito obrigado
MA9H
32

Tenho visto instâncias regulares do VS2015 relatando "falha de construção", mas não mostrando nenhum erro na janela de erro. Vindo de um fundo de linha de comando antigo, finalmente olhei para a janela de saída. A janela de saída mostrou os erros do compilador relatando, mas esses erros não estavam sendo capturados na janela de erro. Nunca vi esse problema no VS2013.

O fechamento usual do VS e sua reabertura não eliminou esta condição. (No VS2013, essa era uma maneira comum de chutar o XAML intellisense para trás e fazer com que parasse de se fixar em um "erro" que havia sido corrigido.)

Até agora, isso sempre esteve relacionado a erros de compilação em um arquivo CS de página XAML. Não me lembro de tê-lo visto em um arquivo CS sem página.

Até que alguém decida ir verificar a janela de saída, coisas como relatórios de intellisense na janela de erro referências inválidas a objetos no XAML, mas nenhum erro do compilador sendo mostrado na janela de erro pode causar MUITA confusão, pois "parece" como os erros são o intellisense relatando erros XAML. Mas eles realmente não são. Os erros XAML são apenas sintomas de arquivos CS falhando ao compilar, mas não tendo seus erros relatados na janela de erro.

Keith
fonte
20
Para aqueles que ainda estão lutando com uma janela invisível de erros, parece que você pode fazer com que os erros do compilador apareçam na janela selecionando Build Only na lista suspensa Filter ErrorList To na janela Error List (a lista suspensa não está rotulada ... Você pode descobrir qual é passando o mouse sobre ele e observando a dica de ferramenta).
Robert Harvey
2
@RobertHarvey ... esta é a chave ... mas POR QUE no mundo o Intellisense substituiria a compilação?
felickz
@RobertHarvey era exatamente isso. Acontece que, como alguém aqui sugeriu, eu estava fazendo referência a um projeto .net incompatível, mas não consegui dizer qual era o problema até mudar a saída para "Build Only" no painel Error. Assim que fiz isso, ele me apontou diretamente para o problema. Obrigado pela dica.
David Gunderson
Essa resposta foi a pista para mim. Procure por "erro CS" (sem aspas) para possíveis exceções de construção de bloqueio.
granadaCoder
PS. Meu erro foi ter usado o mesmo nome de variável em meu método. "string x = string.Empty;" por exemplo. Eu tive um manipulador de exceção que também tinha uma declaração "string x" nele.
granadaCoder
11

Excluir a .vspasta oculta funcionou para mim no VS2015.

(Observe que é aqui que os arquivos SUO estão agora)

Mike Asdf
fonte
9

Isso pode acontecer quando você faz referência a um projeto de versão de estrutura .net diferente (v4.5.2 vs v4.5 no meu caso). Corrigir isso resolverá seu problema.

Claudiu Constantin
fonte
Esse era exatamente o meu problema. Adicionou um novo projeto à solução que era a v4.5.2 e fiz referência a ele de outro projeto que era a v4.5. Mudou o novo projeto para a v4.5 e funcionou bem.
Drew
7

O que aconteceu comigo foi mudar o fuso horário no computador para +5: 30 e depois voltar para -5: 00 é o que confundiu o VS. Quando reiniciei o VS, ele funcionou bem novamente.

MB
fonte
nenhuma pista. Eu uso controle de versão então pode ser que se confundiu com os tempos ???
MB de
6

Verifique todas as versões do Framework do seu projeto e certifique-se de que são todas iguais ou pelo menos que o projeto A não faz referência ao projeto B quando a versão do .NET Framework do projeto B é superior.

Daniel Minnaar
fonte
6

Tive este problema com VS2015 Update 3 RC e Xamarin (projeto compartilhado .Forms).
O compilador não para, os erros são mostrados apenas na janela de saída.
Isso apenas para projetos Xamarin (com projetos VB.NET tudo funcionou como esperado) ...
Para tentar encontrar o motivo do problema, eu mudei o Build Output no VS:
- menu "Ferramentas - Opções"
- no painel esquerdo : "Projetos e soluções: construir e executar":
- alterar "Verbosidade de saída do MSBuild" de "Mínimo" para "Diagnóstico"

Depois de fazer isso, o compilador parou e o erro foi mostrado.
Depois disso, ajustei a opção de "Diagnóstico" para "Mínimo" (como era antes) e ... funcionou também com "Mínimo" (com certeza, eu também reiniciei o VS) ...

Então .. parece (pelo menos no meu caso) que apenas mudar (tocar) a configuração (MSBuild Output Verbosity ") resolveu o problema e que este é um bug no VS e / ou no Software de integração Xamarin ...

FredyWenger
fonte
1
Por que esta resposta não é mais votada? Ele oferece a solução perfeita para depurar o que está errado
John Demetriou
Verifique minha resposta abaixo. Também pensei que sua solução estava certa, mas percebi que mesmo com o nível de saída "Diagnóstico", minha guia "Erro" permaneceria vazia. Como outros, você provavelmente manteve a guia "Erro" ativa e é por isso que ela começou a funcionar bem ...
jpo38
6

Não sei se sou o único que enfrenta esse problema.

No meu caso, quando abri o Visual Studio, o fuso horário estava em GMT + 1: 00 e a compilação foi bem-sucedida. Então mudei o fuso horário para GMT + 5: 30, e então, sem reiniciar o Visual Studio, tentei executar o aplicativo, mas a compilação falhou sem nenhum erro ou aviso.

Mudei de volta o fuso horário para GMT + 1: 00 e a compilação foi bem-sucedida sem nenhum erro.

Rudresha Parameshappa
fonte
Muito obrigado - isso estava me deixando louco a tarde toda :-)
indra
2

O que eu fiz (depois de tudo o que foi dito acima, e ainda não estava funcionando) foi percorrer todas as pastas de lixeira e limpá-las todas (ou seja, os projetos referenciados também).

Isso funcionou para mim, espero que funcione para você também.

Rodney Ellis
fonte
2

Eu tive esse problema e descobri que estava usingapontando para um namespace vazio. Remover essa usingcláusula resolveu o problema

Phate01
fonte
2

Verifique os avisos ..

Eu tinha a nova biblioteca de classes com destino .Net Framework 4.5 enquanto o projeto de referência era 4.0, o que causou problema de referência.

Depois de modificar a biblioteca de classes com o target .Net Framework 4.0 funcionou corretamente.

Gyansada
fonte
2

Nada das respostas acima me ajudou. Depois de muitos experimentos, finalmente descobri que o problema é uma referência do Microsoft.Net.Compilers v2.10.0 em um dos projetos. O VS 2015 usa o MSBuild v14, que não oferece suporte a essa versão do Microsoft.Net.Compilers.

Petar Petrov
fonte
1

Para mim, esse problema estava relacionado a uma configuração personalizada do conjunto de regras do CodeAnalysis " IncludeAll ".

Parece que o compilador observa esta configuração:

  <IncludeAll Action="Error" />

Mas o IntelliSense executou a AÇÃO padrão na ID da regra que era "Aviso". Isso explicaria o comportamento visto por @RobertHarvey onde você filtra a saída por Build Only e mostra como um ERROR , mas se você filtrar por Intellisene Only mostra como WARNING . Filtrar a saída pelo padrão Build + Intellisense parece não determinístico!

Minha correção foi chamar explicitamente a regra de que eu queria ser um aviso como um aviso.

  <Rules AnalyzerId="Microsoft.CodeAnalysis.CSharp" RuleNamespace="Microsoft.CodeAnalysis.CSharp">
    <Rule Id="CS0618" Action="Warning" />
  </Rules>

Isso é potencialmente um problema com o Intellisense não observando a opção IncludeAll . Veja https://github.com/dotnet/roslyn/issues/7400

Felickz
fonte
1

Isso também pode acontecer ao migrar um projeto para o Visual Studio 2015 com um Framework mais antigo. Verifique seus avisos em sua lista de erros. Você pode ver algo como o projeto é atualmente .NET versão 2.0 e requer .NET 3.5 ou superior. Se você encontrar um aviso semelhante, vá para as propriedades do seu projeto e direcione o .NET Framework necessário.

Tyriddik
fonte
1

Por favor, verifique os avisos. Às vezes, a construção falhava por causa de algum tipo de aviso também.

Krish
fonte
1

Ao abrir uma solução, gere-a, posso ver alguns erros de build ou avisos relatados na "guia Saída", enquanto a "guia Erro" não relata nenhum problema.

insira a descrição da imagem aqui

Você pode ver que a configuração da "guia Erro" está OK ("Somente construção" e "Solução inteira" selecionadas).

Observe que, após uma investigação profunda, identifiquei que isso só ocorre se a "guia Erro" ainda não foi exibida quando você inicia a compilação!

Se você ativou a "guia Erro" antes de fazer a compilação (ou se era a guia atual quando você iniciou o Visual), os erros / avisos recém-encontrados aparecerão corretamente:

insira a descrição da imagem aqui

É como se a "guia Erro" fosse inicializada apenas quando se tornasse visível (o que pode ser verdade, pois leva mais tempo para aparecer na primeira vez que você clica nela ...) e, se não foi, ela não coleta compilação resultados...

Até agora, não tendo uma resposta melhor para este problema do que " ativar a guia Erro antes de construir ".

E aposto que é por isso que "reiniciar o VS" às vezes funciona. Você vê que a "guia Erro" está vazia, fecha e reabre o VS e, em seguida, a "Guia Erro" é exibida por padrão, pois o VS restaurou a guia ativa atual da sessão anterior. Você constrói e agora a "guia Erro" é preenchida ...! Você apenas teve sorte.

Observação: relatou um bug do VS: https://connect.microsoft.com/VisualStudio/feedback/details/3132689

jpo38
fonte
Essa solução funcionou para mim. Aconteceu comigo uma vez - nenhum aviso foi exibido. Abri a janela Lista de Erros e reconstruí a solução. Os avisos foram exibidos desta vez. Não consigo reproduzir o mesmo problema novamente, mesmo depois de reiniciar o VS.
IAN
1

Para mim, a compilação falhou sem erros, mas após algumas investigações leves descobri que a referência para MSHTML não foi encontrada pelo VS.

insira a descrição da imagem aqui

O comportamento apareceu após uma atualização para o Windows 10. Para corrigi-lo, você precisa registrar o assembly do GAC. Para saber como fazer isso, vá para esta resposta DLL MSHTML no Windows 10 , onde encontrei minha resposta.

Fid
fonte
0

Retirado desta resposta

A compilação falhou, nenhum erro foi mostrado na janela de saída.

Para tentar encontrar o motivo do problema, alterei o Build Output no VS: - menu "Ferramentas - Opções" - no painel esquerdo: "Projetos e soluções: Build And Run": - altere "MSBuild Output Verbosity" de " Mínimo "para" Diagnóstico "

Depois de fazer isso, descobri o verdadeiro motivo que era na verdade um erro com projetos de dependência. Eu projetei que eu estava dependendo foi construído para uma estrutura diferente (mais recente) que a minha. Criando assim o problema. Os erros só foram exibidos quando coloquei o Verbosidade de Saída para Diagnóstico

John Demetriou
fonte
Não se trata apenas de descobrir o problema, é sobre aprender como solucionar o problema. Por isso incluí outras respostas no processo de depuração, pois foi isso que me ajudou a descobrir o que estava errado. Não apenas suposições aleatórias sobre qual poderia ser o problema
John Demetriou
0

Para mim, era uma propriedade anexada desonestos. O problema não era necessariamente que eu não pudesse ver um erro; o erro foi o seguinte:

O nó filho "2" saiu prematuramente. Desligando. As informações de diagnóstico podem ser encontradas em arquivos no diretório de arquivos temporários denominado MSBuild _ *. Failure.txt.

Inicialmente, a compilação travaria e não mostraria nenhum erro, a menos que você tentasse fechar o Visual Studio. Depois de reiniciar, ele travaria por um longo período durante a construção e, em seguida, exibia a mensagem acima.

A exclusão da .vspasta oculta , a solução de reconstrução / limpeza e a reinicialização do Visual Studio não funcionaram. A remoção da propriedade anexada sim; logo, pode ser um código real em algum lugar que não está funcionando corretamente.

Como último recurso, eu removeria todas as alterações recentes, uma por uma, até que o problema fosse resolvido, pois nenhuma das soluções aqui ajudou.

Atualizar

Como estou acostumado a desenvolver aplicativos WPF tradicionais, não percebi que não é possível "encadear" namespaces XAML usando .s com UWP. Eu estava tentando definir uma propriedade anexada usando

My.Namespace:SomeClass.SomeProperty="SomeValue"

Considerando que, deve ser apenas

MyNamespace:SomeClass.SomeProperty="SomeValue"

Não é tão bonito quanto eu gosto, mas é o único jeito de morrer, aparentemente.

James M
fonte
0

O que funcionou para mim:

Fechar todos os documentos resolveu o problema para mim. (Mesma solução se o intelliSense parar de funcionar)

(clique com o botão direito na guia - Fechar todos os documentos)

Ziv Weissman
fonte
0

Tente isto

Excluir "mstscax.dll"das dependências funcionou para mim.

Emile Cloete
fonte
0

Problema de nicho: encontrei o mesmo problema agora. Nenhuma das respostas acima pareceu ajudar.

O problema era para um programa de console, não é possível marcar o método Main () como assíncrono ** que é o que eu estava fazendo. Não tenho certeza, por que o Visual Studio não pôde especificar por que exatamente o projeto não estava sendo compilado (recebo 0 erros e 0 avisos todas as vezes). Estou usando o Visual Studio 2015 Enterprise.

Correção: a solução para isso está aqui .

user3613932
fonte
0

Depois de atualizar um arquivo dll, descobriu-se que o novo arquivo tinha como alvo uma versão superior do .NET Framework. A solução foi ir para Propriedades do projeto e alterar a estrutura de destino para a versão apropriada.

útilBee
fonte
0

MSBuild.exe foi alterado no diretório (C: \ Arquivos de programas (x86) \ MSBuild \ 14.0 \ Bin)

então eu apenas substituo o MSBuild.exe de outro pc que tenha vs2015.

Agora está funcionando bem.

sabarino
fonte
0

Eu encontrei a solução mudando o .NET Framework de 4.5.2 para 4.0.

O problema foi causado por uma referência que não era compatível com a estrutura selecionada atualmente.

Stefan Đorđević
fonte
0

Acabei de limpar meus filtros e funcionou para mim. O ícone para limpar todos os filtros fica próximo à caixa de mensagens.

Nevin Jose
fonte
0

Comece um novo projeto. Copie todo o seu código até o namespace abaixo ConsoleApp38450983450.

Cole no novo projeto abaixo do namespace ScrewedUpConsoleApp102343

Construa e execute perfeitamente

Brandon Norris
fonte
-1

Você deve definir a caixa de combinação no lado direito da lista de erros, em 'Solução Inteira' para ver todos os erros. insira a descrição da imagem aqui

Milad Koudarzi
fonte
1
Esta questão bastante antiga já tem uma resposta aceita, não parece que sua resposta muito curta e pouco descritiva aqui acrescente muito a ela. Além disso, não crie links para imagens em sites externos, mas adicione as imagens à sua resposta!
Dux