Como determinar por que o visual studio pode estar pulando projetos ao construir uma solução

92

Estou depurando o trabalho de outra pessoa e a solução é bastante ampla. Quando tento construir a coisa toda, vários projetos dentro da solução não são compilados e simplesmente pulam. Visualizar a janela de saída durante o processo de compilação diz:

1> ------ Ignorado Reconstruir tudo: Projeto: pr1lib ------

Como posso determinar por que essas compilações foram ignoradas? Não consigo encontrar saída adicional.

Isso é com o VS2008 e a solução é composta de códigos c # e c ++.

Matt
fonte
Além das respostas fornecidas, certifique-se de que as definições de configuração da solução tenham cada projeto no estado marcado (caixa de seleção marcada) que deve ser limpo / construído:Build > Configuration Manager: check as needed
Metro Smurf
2
Para solucionar problemas de porque os projetos são ignorados. Certifique-se de adicionar /flas configurações de construção para obter um arquivo msbuild.log que inclui o motivo. Por exemplo:skipped, due to false condition; ( ('$(Configuration)' == 'Release') and ('$(Platform)' == 'Any CPU') ) was evaluated as ( ('Debug' == 'Release') and ('AnyCPU' == 'Any CPU') ).
T_D
2
@T_D - onde no Visual Studio eu adicionaria '/ fl'? Onde o log aparecerá? Se você adicionar isso como uma resposta, irei votar a favor, já que a maioria das outras respostas são várias suposições aleatórias para resolver o problema, em vez de responder à pergunta original, que era simplesmente sobre obter mais informações sobre o problema.
PaulG
@PaulG Veja minha resposta abaixo. Basta definir as configurações nas opções.
Darren Wood

Respostas:

85

Clique com o botão direito na solução, escolha Propriedades e depois Propriedades de configuração. Aqui você pode escolher quais projetos construir.

[ editar ]:
Veja o comentário do Kdt: ... quando olhei nas propriedades de configuração ... o destino de construção do projeto foi configurado para "Plataformas Mistas" enquanto a solução foi configurada para construir "Qualquer CPU".

* Quando esse problema aconteceu comigo, o projeto principal tinha apenas 'Qualquer CPU' e definiu a dll filha para 'qualquer CPU' também, no entanto, eu excluí esse perfil e deixei apenas 'x86'. Escolher x86 apenas para dll faz com que comece a funcionar
[/ edit]

Tchami
fonte
20
Eu estava tendo um misterioso "build pulado" e quando olhei nas propriedades de configuração, o projeto estava realmente marcado para build. No entanto, o destino de construção do projeto foi configurado para "Plataformas mistas", enquanto a solução foi configurada para construir "Qualquer CPU" - alterá-los para que correspondam ao problema corrigido.
kdt
2
No meu caso, embora todos os projetos e a solução estivessem configurados para "Qualquer CPU", um projeto foi ignorado. Só depois de definir a solução como "Plataformas mistas" e, em seguida, voltar para "Qualquer CPU" é que ela seria criada. Olhando para um diff do arquivo de solução antes e depois, ele mudou de {784BDC39-5783-4128-956E-99EA062FA8FB}.Debug|AnyCPU.ActiveCfg = Debug|AnyCPUpara {784BDC39-5783-4128-956E-99EA062FA8FB}.Debug|AnyCPU.ActiveCfg = Debug|Any CPU. A única diferença é o espaço adicionado entre "Qualquer" e "CPU" no final da linha.
Simon Tewsi
5
No meu caso, todos os projetos foram definidos como "Qualquer CPU" e o problema resolvido removendo os projetos (remover o projeto não faz com que os arquivos sejam removidos) e adicionando-os novamente à solução.
Hamid Mayeli de
41

Acabei de ter o mesmo problema - "descarregar projeto" e "recarregar projeto" resolveram o problema!

Sharon Ben-Avraham
fonte
Eu tenho o mesmo problema, e descarregar / recarregar funciona, mas o problema parece voltar, o que é irritante quando acontece com um monte de projetos e você tem que descompactar / recarregar cada um deles ... Alguém sabe se há um maneira de evitar isso completamente?
Liron,
Isso corrigiu o problema para mim quando o Visual Studio estava relatando erroneamente projetos como já atualizados na janela de saída, ao tentar fazer uma compilação.
Kevin Laity
28

As operações de construção, reconstrução e limpeza estavam sendo ignoradas. Descarregar e recarregar não ajudou, nem reiniciar o Visual Studio.

Depois de remover o projeto da solução e adicioná-lo de volta, ele não é mais ignorado. Para removê-lo, no Gerenciador de Soluções, clique com o botão direito do mouse no projeto> Remover> OK. Para adicioná-lo de volta, no Gerenciador de Soluções, clique com o botão direito na solução> Adicionar> Projeto Existente e selecione seu projeto

user1325179
fonte
6
Lembre-se de que você terá que adicionar novamente todas as referências do projeto a esse projeto.
Joseph
9

Se a configuração for x64 e o compilador x64 não estiver instalado, o projeto será ignorado.

Dave
fonte
1
+1 Genius. Você pode encontrar o SP1 aqui: microsoft.com/download/en/details.aspx?id=10986
ashes999
Quando o compilador x64 não está instalado, você não pode nem mesmo selecionar x64.
Calmarius
A solução e as configurações do projeto podem definir e usar uma entrada intitulada "x64". O terceiro ddl para o arco do processador (destino da plataforma - na metade da página de propriedades de construção) é o que não está disponível
StingyJack
9

Minha solução é a mesma mencionada anteriormente: Excluir -> Adicionar projeto existente

Mas esta solução implica que as referências entre projetos desaparecem

Para evitar voltar a adicionar referências: e no caso de você usar um sistema de controle de versão como GIT ou TFS ou qualquer outro, é possível atingir o objetivo com as seguintes etapas:

  1. Certifique-se de que todas as alterações são confirmadas / check-in antes da operação

  2. Percorra todos os projetos, excluindo-os da solução e adicionando-os existentes

  3. Observe que o arquivo .sln mudou

  4. Mantenha o novo arquivo .sln, mas desfaça as alterações em todos os arquivos .cspoj com o sistema de controle de versão

Andrey K.
fonte
6

Reiniciar o Visual Studio resolveu

Mohammad Fneish
fonte
5

O visual studio 2008, pode ser porque o compilador de 64 bits não teria instalado.

Painel de controle -> Programas e recursos -> Microsoft Visual Studio 2008 profissional -> [clique duas vezes]

Na caixa de diálogo Visual Studio

Próximo -> Adicionar / remover recursos -> (em) Visual C ++ -> (selecionar) compilador x64 e ferramentas

Anish AR
fonte
3

Ei, acabei de consertar este. Achei que poderia ajudar. Você provavelmente não instalou os compiladores correspondentes junto com o estúdio visual. Isso aconteceu comigo hoje - por padrão, o instalador do VS 2008 não instala o compilador x64 C ++.

Se você tiver o SP1, desinstale-o antes de alterar a instalação do VS. Quando terminar, instale o SP1 novamente.

Sergey Malgin
fonte
3

O problema também existe no VS 2010; das soluções propostas: edição de configuração de compilação, limpeza, alteração / re-alteração da estrutura de destino, NÃO funcionam. Mas descarregar e recarregar o projeto sim.

Mark Alsip
fonte
2

Vá para o menu de construção e escolha "gerenciador de configuração". Isso mostrará quais projetos estão configurados para construir em sua configuração selecionada.

1800 INFORMAÇÕES
fonte
2

Aconteceu uma coisa semelhante comigo. Não tenho certeza de qual era o problema, mas não limparia , construiria , reconstruiria , etc. Estou operando no Visual Studio 2017 e queria uma netstandard2.0montagem. O problema para mim era que de alguma forma o tipo de projeto estava incorreto, talvez eu tenha começado de uma netcoreappbiblioteca de classe, algo assim, preso no arquivo de Solução , não me lembro. De qualquer forma, eu fiz backup do projeto, criei um novo netstandardprojeto de biblioteca de classe e incluí os bits de backup, e isso consertou para mim. HTH alguém.

mwpowellhtx
fonte
2

Tive um estranho que pode valer a pena documentar entre as outras possibilidades aqui ..

Eu adicionei um projeto compartilhado à minha solução, com código que foi usado em dois ou três dos outros projetos. Como você sabe - Projetos compartilhados são apenas código, e não realmente um projeto no sentido tradicional. Você não pode 'construir' um projeto compartilhado, é apenas código que é incorporado a outros projetos e, em seguida, construído lá.

Mas de alguma forma meu arquivo de solução foi atualizado como se o projeto compartilhado fosse algo que precisasse ser construído. Eu estou supondo então que a qualquer momento que eu estava tentando construir e não tinha alterado o código no projeto compartilhado, então percebi 'nada mudou, pule essas compilações'

Encontrei o projeto compartilhado no solution.slnarquivo como:

Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Api.Common", "Api.Common\Api.Common.shproj", "{EC580471-D78A-4509-AC46-BD565553AD60}"

..o que está bem. O que não está bem é que este projeto também apareceu da seguinte GlobalSection(ProjectConfigurationPlatforms) = postSolutionforma:

    {EC580471-D78A-4509-AC46-BD565553AD60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    {EC580471-D78A-4509-AC46-BD565553AD60}.Debug|Any CPU.Build.0 = Debug|Any CPU
    {EC580471-D78A-4509-AC46-BD565553AD60}.Release|Any CPU.ActiveCfg = Release|Any CPU
    {EC580471-D78A-4509-AC46-BD565553AD60}.Release|Any CPU.Build.0 = Release|Any CPU

Eu removi essas quatro linhas do meu .slnarquivo e agora as coisas parecem felizes novamente

PaulG
fonte
Ótimo! Era isso! Removi todas as linhas do arquivo .sln que começavam com uma linha que dizia apenas "Global" e removi todas as linhas até "EndGlobal". Então funcionou novamente.
Ted
2
  1. Fechar estúdio visual
  2. Abra o arquivo sln com o bloco de notas
  3. exclua todas as coisas como este: {B546C55D-9321-4FC0-B25C-46844222BEBE} .Debug with Fakes | x86.ActiveCfg = Debug with Fakes | x86 (haverá um monte deles)

4. salvar o arquivo 5. abrir o Visual Studio e tudo melhor

Chris Heinemann
fonte
2
Por que isso ajuda? Adicione alguma explicação e seja o mais detalhado possível para que futuros leitores possam ajudar a entender por que você precisou seguir essas etapas.
2

Eu atualizei para 15.9.11, ... depois de algumas compilações, o mesmo problema: a maioria dos projetos são pulados (que são compilados um segundo atrás sem problemas). Descarregar / recarregar a solução ajuda sempre no meu caso, mas acontecerá novamente em breve.

Não tenho ideia do porquê ... exceto um grande bug no VS2017

Eu verifiquei o gerenciador de configuração, todas as marcas de verificação estão definidas para construir.

Talvez tenha algo a ver com pacotes nuget, mas isso é apenas um palpite

A solução tem apenas c ++ / vcxproj, sem csproj. 64 e 32 estão instalados ambos

Timm
fonte
2

A primeira coisa que você precisa fazer é diagnosticar por que o build está pulando projetos. Portanto, para obter uma saída de compilação detalhada, altere o detalhamento para detailedno seguinte local em Visual Studio.

insira a descrição da imagem aqui

Darren Wood
fonte
7
As configurações de verbosidade não ajudam, infelizmente. A saída ainda diz apenas 'projeto ignorado' sem explicar o porquê.
PaulG
1

Tive o mesmo problema, descobri que a configuração do projeto era para CPU Itanium, alterando-a para Intel consertou.

Sabuncu
fonte
1

Estava tendo o mesmo problema com o VS2005, todas as configurações estavam corretas. Estava até pulando o comando Limpar projeto.

Finalmente, descarregar / recarregar fez a mágica.

Prakash
fonte
1

Clique com o botão direito do mouse em Solução no explorador de soluções e, a seguir, clique em Propriedade na parte inferior do menu. Nas janelas de propriedades, clique em Propriedades de Configuração -> Configuração no painel esquerdo, você verá a lista de projetos no painel direito, certifique-se de que a caixa de seleção Compilar esteja marcada na janela pop-up.

TonyXu
fonte
1

Se sua solução contiver um arquivo de projeto NuGet (* .nuproj), tente descarregá-lo e reconstruir sua solução.

Isso funcionou para mim depois que nenhuma das opções acima funcionou.

FrequentGuest
fonte
0

Acho que às vezes, quando você tem a plataforma de destino definida para, digamos, x86 em sua solução e em seus projetos, o projeto nem sempre a selecionou.

Para verificar novamente, vá para as propriedades do projeto e veja se você pode selecionar essa plataforma na configuração Build-> Platform, se não puder, então você precisará ir ao gerenciador de configuração e criar essa configuração.

TriStar
fonte
0

Tive esse problema com alguns projetos do Windows CE em um PC novo. "Unload project" e "Reload project" pareceram corrigir o problema, mas na verdade o Visual Studio simplesmente mudou para uma plataforma diferente e a construiu.

Descobriu-se que, embora minha plataforma WinCE fosse mostrada como a plataforma ativa, o Visual Studio não "realmente" a viu. A solução foi reinstalar o WinCE SDK com privilégios de administrador :

  • Certifique-se de que o Visual Studio 2008 não esteja em execução.
  • Abra um “Prompt de Comando do Visual Studio 2008” como Administrador. No Windows 7, basta clicar com o botão direito no atalho e selecionar a opção “Executar como administrador”.
  • Digite o seguinte comando: msiexec /log SDKInstallLog.txt /package <the path to your .msi file>
  • Quando perguntado se deseja fazer uma instalação customizada ou completa, escolha customizada e instrua o instalador a omitir a instalação da documentação (esta etapa não foi necessária no meu caso; na verdade, eu apenas pedi para "reparar" a instalação existente. )
  • Instalar
Qwertie
fonte
0

O VS 2008 irá ignorar os destinos x64 se você não tiver o compilador x64 instalado. O VS 2008 não faz isso por padrão. Tipo de duh, coisa.

user2869030
fonte
0

Tive um problema muito semelhante depois de gerar um projeto a partir de um descompilador da Telerik e, em seguida, tentar recompilá-lo. O projeto foi pulado sempre que tentei reconstruí-lo. Tentei várias das sugestões acima, mas para mim foi o .NET Framework selecionado nas propriedades do projeto.

Clique com o botão direito do mouse no projeto no arquivo de solução, selecione propriedades, guia do aplicativo, altere a estrutura de destino de 4.0 para 3.5.

Então, reconstrua, e eu tenho um monte de erros de referência de montagem ausentes, o que faz sentido, já que não adicionei referências a eles ainda.

Elmer
fonte
0

Eu atualizo uma pequena atualização do Visual Studio 2017 e então o instalador me lembra de reiniciar meu computador, mas eu não reiniciei. Quando eu construo meu projeto ou solução no Visual Studio 2017, encontro o mesmo problema acima. Acho que a atualização talvez a chave, então eu reinicio meu computador, eu fiz.:>

Farb
fonte
0

Tive esse problema no Visual Studio 2017 15.9.4 e depois de pesquisar e dedicar algum tempo, descobri que em minha solução o arquivo .csproj de um dos projetos foi corrompido após a fusão no TFS. (Eu poderia construir outros projetos descarregando o projeto problemático da solução). Como resolvi meu problema, comparei o arquivo .csproj antes e depois da mesclagem e corrijo isso. E por correção, quero dizer, como o tipo do meu próprio projeto era .netStandard, removi linhas desnecessárias, incluindo Configuration PropertyGroup , todos e outros no novo arquivo .csproj para torná-lo semelhante à versão anterior no estilo .netStandard.

VahidShir
fonte
0

Eu tive um problema semelhante, eu tive um projeto que não conseguiu carregar no Solution Explorer por algum motivo. Quando carreguei esse projeto, funcionou perfeitamente.

Gaurav Yeole
fonte
0

Acabei de me meter neste problema:

Atualizei o VS 2017 para a versão mais recente 15.9.11 e alguns dos meus projetos foram atualizados para .net core 2.2. Inicialmente carreguei todos os projetos, tentei construir / limpar / reconstruir e tudo foi ignorado. Siga o seguinte para resolver:

  1. Descarreguei cada projeto e recarreguei-os.
  2. Fechou todas as instâncias do VS e abriu o VS como administrador (clique com o botão direito no atalho e escolha a opção “Executar como administrador”)

É isso que tudo voltou a funcionar e pude construir todos os projetos com sucesso.

Chethan
fonte
0

O estúdio visual 2017

Depois de adicionar a configuração no Configuration Manager

Clique com o botão direito do mouse em Projeto -> Apenas Projeto -> Apenas Compilar / Apenas Reconstruir / Apenas Limpar

se todas as outras configurações estiverem corretas.

mail2subhajit
fonte
0

Problema: Rebuilding, Build, Clean estava ignorando todos os meus projetos, exceto dois deles.

Soluções que não funcionaram para mim:

  1. As definições de configuração da solução foram as esperadas, então nenhuma mudança ajudou.

  2. Descarregar e recarregar não funcionou.

Motivo da ocorrência:

Isso estava acontecendo porque o framework .NET de destino era maior (4,7) para esses 2 projetos, mas menor para os outros projetos. Um prompt inicialmente apareceu pedindo-me para instalar o .NET 4.7, o que fiz, mas descobri que ele não foi capaz de reconhecer que está instalado sem reiniciar minha máquina.

Soluções que funcionaram:

  1. Reiniciar minha máquina resolveu. Depois de reiniciá-lo corretamente reconheceu que o .NET 4.7 está instalado.
  2. Como alternativa, fazer o downgrade da estrutura de destino do projeto clicando com o botão direito do mouse no projeto -> Propriedades -> Aplicativo -> Estrutura de destino e definindo-a da mesma forma que os outros projetos que estavam sendo ignorados também resolveu o problema.

Eu recomendaria instalar o .NET Framework mais recente e reiniciar a máquina para evitar mais problemas.

Sonali Agrawal
fonte
0

Ele irá ignorar as compilações em quaisquer projetos que tenham projetos dependentes que falharam na criação.

mcmillab
fonte