Qual é a diferença entre Build Solution, Rebuild Solution e Clean Solution no Visual Studio?
Quando é o momento apropriado para usar cada um deles?
Qual é a diferença entre Build Solution, Rebuild Solution e Clean Solution no Visual Studio?
Quando é o momento apropriado para usar cada um deles?
Respostas:
(Os links são para as opções de linha de comando devenv.exe , mas fazem o mesmo que os itens de menu.)
.gitignore
arquivo decente . Mas, de acordo com a resposta, o Clean nem sempre faz um trabalho particularmente completo em minha experiência.
Solução de compilação: Compila arquivos de código (DLL e EXE) que são alterados.
Reconstruir: Exclui todos os arquivos compilados e os compila novamente, independentemente se o código foi alterado ou não.
Solução limpa: exclui todos os arquivos compilados (arquivo DLL e EXE).
Você pode ver este vídeo do YouTube ( Visual Studio Build vs. Rebuild vs. Clean (perguntas da entrevista em 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.
A diferença entre Rebuild vs. (Clean + Build), porque parece haver alguma confusão em torno disso:
A diferença é a maneira como a sequência de compilaçã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", limpe (exclua) os arquivos compilados para "proj1" e construa-o. Depois disso, será necessário o segundo projeto "proj2", limpe os arquivos compilados para "proj2" e compile "proj2".
Mas se você fizer um “clean” e construir ”, ele primeiro excluirá todos os arquivos compilados para“ proj1 ”e“ proj2 ”e, em seguida, criará“ proj1 ”primeiro seguido por“ proj2 ”.
Retirado deste link :
Compilar significa compilar e vincular apenas os arquivos de origem que foram alterados desde a última compilação, enquanto Reconstruir significa compilar e vincular todos os arquivos de origem, independentemente de terem sido alterados ou não. Construir é a coisa normal a se 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.
Solução de Compilação - Cria todos os assemblies que alteraram arquivos. Se uma montagem não tiver alterações, ela não será reconstruída. Também não excluirá nenhum arquivo intermediário.
Usado com mais frequência.
Reconstruir solução - reconstrói 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 assembly mais recente. Às vezes, o Visual Studio comete erros.
Solução limpa - exclua todos os arquivos intermediários.
Usado quando tudo mais falha e você precisa limpar tudo e começar do zero.
Eu apenas penso em Rebuild como executando o Clean primeiro, seguido pelo Build. Talvez eu esteja errado ... comentários?
file reference
vez de um, project reference
para que a ordem de criação do projeto não reconhecesse que era necessário criar um determinado projeto antes de outro, e a montagem não existia onde deveria estar durante o processo. Construir?
Solução de Compilação - Cria todos os assemblies que alteraram os arquivos. Se uma montagem 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 será limpa e depois a partir do zero, ignorando tudo o que foi feito antes
O Clean Solution excluirá todos os arquivos compilados (ex. EXE e DLL) do diretório bin / obj.
A solução Build compilará todos os projetos na solução que foram alterados. A reconstrução cria todos os projetos, não importa como, a solução limpa remove todos os arquivos temporários, garantindo que a próxima construção seja concluída.
Solução de compilação - A solução de compilação criará seu aplicativo com a criação do número de projetos que estão tendo qualquer alteração no arquivo. E não limpa nenhum arquivo binário existente e apenas substitui os assemblies atualizados na pasta bin ou obj.
Solução de reconstrução - A solução de reconstrução criará todo o seu aplicativo criando todos os projetos disponíveis na sua solução, limpando-os. Antes de compilar, ele limpa todos os arquivos binários da pasta bin e obj.
Solução limpa - A solução limpa é apenas limpa todos os arquivos binários da pasta bin e obj.
Solução de compilação
Isso executará uma construção incremental. Em outras palavras, ele criará apenas arquivos de código que foram alterados. Se eles não foram alterados, esses arquivos não serão tocados.
Reconstruir solução
Isso excluirá todos os arquivos compilados atualmente (exe e DLLs) e criará tudo do zero, independentemente de haver ou não alteração de código no arquivo.
Menu solução limpa
Este menu excluirá todos os arquivos compilados (ex. EXE e DLL) do diretório bin / obj.
Reconstruir = Limpar + Criar
A principal coisa que acho que as pessoas estão deixando de fora é que Build e Clean são tarefas executadas com base no conhecimento do Visual Studio sobre seu projeto / solução. Vejo muitas reclamações de que o Clean não funciona, deixa arquivos restantes ou não é confiável; quando, na verdade, os motivos pelos quais você diz que não é confiável na verdade o tornam mais confiável.
A limpeza removerá apenas arquivos e / ou diretórios (limpos) criados pelo Visual Studio ou pelo compilador. Se você copiar seus próprios arquivos ou as estruturas de arquivos / pastas forem criadas a partir de uma ferramenta ou fonte externa, o Visual Studio não "sabe que elas existem" e, portanto, não deve tocá-las.
Você pode imaginar se a operação de limpeza executou basicamente um "del *. *"? Isso pode ser catastrófico.
O Build executa uma compilação em projetos alterados ou necessários.
A reconstrução executa uma compilação independentemente da alteração ou do que é necessário.
O Clean remove os arquivos / pastas que ele criou no passado, mas deixa inicialmente tudo o que não tinha nada a ver.
Espero que isso elabore um pouco e ajude.
Eu tenho aa solução em branco BuildRebuildClean
e três biblioteca de classes Models
, Repository
, Notification
.
Eu uso Models
e Repository
na Notification
biblioteca de classes.
Então:
Models
projeto da biblioteca, em seguida, BUILD solution. Na captura de tela abaixo, consulte o carimbo de data / hora da DLL, EXE é atualizado Models
e a Notification
biblioteca.BuildRebuildClean
. O que ele faz é excluir todos os assemblies, EXEs e arquivos referidos para compilar novamente.Tudo o que sei é que o Clean não faz o que o "make clean" costumava fazer - se eu limpar uma solução, esperaria que ele excluísse obj / bin arquivos / pastas, de forma que construa como se fosse um novo checkout da fonte. De acordo com minha experiência, muitas vezes encontro momentos em que um Clean and Build ou Rebuild ainda produz erros estranhos na origem que são conhecidos por compilar e o que é necessário é uma exclusão manual das pastas bin / obj e, em seguida, ele cria.
A solução Compilar cria apenas os projetos que foram alterados na solução e não afeta os assemblies que não foram alterados,
O ReBuild limpa primeiro todos os conjuntos da solução e depois cria a solução inteira, independentemente das alterações feitas.
Limpo, simplesmente limpa a solução.
Trata-se apenas da opção "Build Solution".
Fiquei totalmente farto da incapacidade do Visual Studio de realmente limpar soluções e escrevi essa pequena ferramenta que fará isso por você.
Feche sua solução no VS primeiro e arraste a pasta do Windows Explorer para este aplicativo ou para o ícone. Dependendo da configuração na parte inferior da janela, ele também pode remover itens adicionais, o que ajudará se você tentar carregar manualmente sua solução no GitHub ou compartilhá-la com outra pessoa:
Em poucas palavras, ele colocará todas as pastas "Debug", Intellisense e outros caches que podem ser reconstruídos pelo VS na Lixeira para você.