Diferença entre Build Solution, Rebuild Solution e Clean Solution no Visual Studio?

Qual é a diferença entre Build Solution, Rebuild Solution e Clean Solution no Visual Studio?

Quando é o momento adequado para usar cada um deles?

  • A solução de compilation executará uma compilation incremental: se ela não achar que precisa reconstruir um projeto, não. Ele também pode usar bits parcialmente construídos do projeto se eles não tiverem mudado (não sei até que ponto isso é necessário)
  • A solução de recondicionamento limpará e, em seguida, criará a solução do zero, ignorando tudo o que foi feito antes. A diferença entre isso e “Limpar, seguido de Criar” é que o Reconstruir irá limpar e depois construir cada projeto, um de cada vez, em vez de limpar todos e depois construir todos.
  • A solução limpa removerá os artefatos de construção da compilation anterior. Se houver outros arquivos nos diretórios de destino da compilation (bin e obj), eles podem não ser removidos, mas os artefatos de construção reais são. Eu vi comportamento para isso variar – às vezes excluindo bastante completamente e às vezes não – mas vou dar VS o benefício da dúvida para o momento 🙂

(Os links são para as opções de linha de comando devenv.exe , mas eles fazem o mesmo que os itens de menu.)

Solução de compilation: Compila arquivos de código (DLL e EXE) que são alterados.

Reconstruir: Exclui todos os arquivos compilados e os compila novamente, independentemente de o código ter sido alterado ou não.

Solução limpa: Exclui todos os arquivos compilados (arquivos DLL e EXE).

Você pode ver este vídeo do YouTube ( Visual Studio Build vs. Reconstruir vs. Limpar (perguntas da entrevista C # com respostas) ) onde demonstrei as diferenças e abaixo estão representações visuais que ajudarão você a analisar o mesmo com mais detalhes.

Construir vs Reconstruir

A diferença entre Reconstruir vs. (Limpar + Compilar), porque parece haver alguma confusão em torno disso também:

A diferença é como a sequência de construção e limpeza acontece para cada projeto. Digamos que sua solução tenha dois projetos, “proj1” e “proj2”. Se você fizer uma reconstrução, será necessário “proj1”, limpar (excluir) os arquivos compilados para “proj1” e compilá-los. Depois disso, será necessário o segundo projeto “proj2”, limpar os arquivos compilados para “proj2” e compilar “proj2”.

Mas se você fizer um “clean” e compilar ”, ele primeiro apagará todos os arquivos compilados de“ proj1 ”e“ proj2 ”e então criará“ proj1 ”primeiro seguido de“ proj2 ”.

Reconstruir Vs Limpo

Extraído deste link :

Build significa compilar e vincular apenas os arquivos de origem que foram alterados desde a última compilation, enquanto Reconstruir significa compilar e vincular todos os arquivos de origem, independentemente de terem sido alterados ou não. Construir é a coisa normal para fazer e é mais rápido. Às vezes, as versões dos componentes de destino do projeto podem ficar fora de sincronia e a reconstrução é necessária para tornar a construção bem-sucedida. Na prática, você nunca precisa limpar.

Build Solution – Cria quaisquer montagens que tenham arquivos alterados. Se uma assembly não tiver alterações, ela não será reconstruída. Também não excluirá nenhum arquivo intermediário.

Usado mais comumente

Reconstruir solução – recria todos os assemblies, independentemente das alterações, mas deixa os arquivos intermediários.

Usado quando você percebe que o Visual Studio não incorporou suas alterações no último assembly. Às vezes, o Visual Studio comete erros.

Solução Limpa – Exclua todos os arquivos intermediários e reconstrua todos os assemblies, independentemente das alterações

Usado quando tudo mais falhar e você precisar limpar tudo e começar de novo.

Build Solution – Cria quaisquer montagens que tenham arquivos alterados. Se uma assembly não tiver alterações, ela não será reconstruída. Também não excluirá nenhum arquivo intermediário.

A solução de reconstrução irá limpar e, em seguida, construir a solução a partir do zero, ignorando tudo o que é feito antes

Solução limpa irá excluir todos os arquivos compilados (ou seja, EXE e DLL) do diretório bin / obj.

Eu só penso em Reconstruir como executar o primeiro Clean seguido pelo Build. Talvez eu esteja errado … comentários?

Solução de compilation – A solução de compilation criará seu aplicativo com a criação do número de projetos que estão sofrendo alterações no arquivo. E isso não limpa nenhum arquivo binário existente e apenas substitui os assemblies atualizados na pasta bin ou obj.

Solução de recondicionamento – A solução de reconstrução criará todo o seu aplicativo com a construção de todos os projetos disponíveis em sua solução, limpando-os. Antes de construir, limpa todos os arquivos binários da pasta bin e obj.

Solução LimpaSolução limpa é apenas limpa todos os arquivos binários da pasta bin e obj.

A solução Build construirá todos os projetos da solução que foram alterados. Reconstruir constrói todos os projetos, não importa o quê, solução limpa remove todos os arquivos temporários, garantindo que a próxima compilation seja concluída.

Construir solução

Isso executará uma construção incremental. Em outras palavras, ele só criará arquivos de código que foram alterados. Se eles não mudaram, esses arquivos não serão tocados.

Reconstruir solução

Isso excluirá todos os arquivos atualmente compilados (ou seja, exe e DLLs) e criará tudo do zero, independentemente de haver alteração de código no arquivo ou não.

Menu de solução limpa

Este menu irá deletar todos os arquivos compilados (isto é, EXE’s e DLL’s) do diretório bin / obj.

Reconstruir = Limpar + Construir

A única coisa importante que eu acho que as pessoas estão deixando de fora é que Build e Clean são ambas as tarefas executadas com base no conhecimento do Visual Studio sobre seu Projeto / Solução. Eu vejo muitas reclamações de que o Clean não funciona ou deixa os arquivos restantes ou não é confiável, quando na verdade, as razões pelas quais você diz que não são confiáveis ​​realmente o tornam mais confiável.

O Clean remove apenas arquivos (limpos) e / ou diretórios que o próprio Visual Studio ou o próprio compilador criaram. Se você copiar seus próprios arquivos ou estruturas de arquivos / pastas criados a partir de uma ferramenta ou fonte externa, o Visual Studio não “saberá que eles existem” e, portanto, não deverá tocá-los.

Você pode imaginar se a operação Clean basicamente realizou um “del *. *”? Isso pode ser catastrófico.

O Build executa uma compilation em projetos alterados ou necessários.

A reconstrução executa uma compilation independentemente da alteração ou do que é necessário.

Clean remove arquivos / pastas que criou no passado, mas deixa algo com o qual não tinha nada a ver inicialmente.

Espero que isso elabore um pouco e ajude.

A solução de compilation só cria os projetos que foram alterados na solução e não afeta os assemblies que não foram alterados,

ReBuild primeiro limpa, todos os assemblies da solução e, em seguida, cria solução inteira independentemente das alterações feitas.

Limpe, limpe simplesmente a solução.