Pergunta

Estou usando o MSBuild para criar minhas coisas.Quero usar o CruiseControl.net como no Build Server.

Agora, CCNET se refere muito ao nAnt, mas parece que o ccnet pode fazer a maior parte das coisas que o nant poderia fazer por meio da configuração do projeto e do msbuild.Além disso, o nAnt parece um pouco sem suporte, com uma versão Beta que já tem quase um ano.

Resumidamente:Na verdade, estou muito feliz com o MSBuild (especialmente porque é o front-end "oficial" do compilador) e um pouco desconfortável com o nAnt, mas não quero julgar prematuramente.

Quais seriam os motivos para usar o nAnt em vez do MSBuild?Especialmente com o ccnet, que parece se sobrepor um pouco ao nant em termos de recursos (e adicionando coisas relacionadas à construção automatizada)

Foi útil?

Solução

Se você está muito satisfeito com o MSBuild, eu continuaria com o MSBuild.Este pode ser um daqueles casos em que a ferramenta que você aprende primeiro é a que você prefere.Comecei com o NAnt e não consigo me acostumar com o MSBuild.Tenho certeza de que os dois estarão por aí por algum tempo.

Existem algumas diferenças fundamentais entre os dois, provavelmente melhor destacadas por essa conversa entre alguns fãs do NAnt e um Microsoftie.

Interessantemente, Jeremy Miller fez exatamente a pergunta oposta em seu blog ano passado.

Outras dicas

Na minha opinião é mais uma questão de preferência pessoal.nAnt é uma ótima estrutura e o MSBuild é quase tão capaz.Com a capacidade de desenvolver facilmente tarefas personalizadas (em ambas as estruturas), você pode realizar quase tudo o que precisa.

Não posso responder à parte "ainda compatível" de suas perguntas, mas diria que se você já está confortável com o nAnt, provavelmente é viável.Se você (ou alguém do seu grupo) estiver familiarizado com o MSBuild, essa também é uma boa opção.

Se você já possui várias tarefas personalizadas para usar com o nAnt, continue - você não ganha muito com o MSBuild.Dito isto, não parece haver nada que o nAnt possa fazer que o MSBuild não possa em sua essência.Ambos podem chamar ferramentas externas, ambos podem executar tarefas personalizadas baseadas em .Net e ambos têm várias tarefas comunitárias disponíveis.

Estamos usando o MSBuild aqui pelo mesmo motivo que você: agora é o sistema de compilação padrão do VS e não tínhamos nada específico do nAnt com que nos preocupar.

O MSBuildCommunityTasks são uma boa base de tarefas de terceiros para começar e cobrem a maioria das coisas personalizadas que já fiz no nAnt, incluindo suporte a VSS e Subversion.

Honestamente, depende do que se adapta melhor ao seu ambiente.Se você estiver usando muitas ferramentas que não são da Microsoft, nunit, ccnet, ncover.Você provavelmente encontrará melhor suporte com o nant.Alternativamente, se você estiver usando MSTest, TFSBuild, provavelmente achará o MSBuild um ambiente melhor.Eu aprenderia ambos e usaria qual se adaptasse melhor ao seu ambiente.

CC.NET é simplesmente a tecnologia de servidor de construção, não a tecnologia de script de construção.Usamos CC.NET no trabalho para chamar scripts de construção do MSBuild com muito sucesso e sem problemas.

NAnt é uma linguagem de script de construção mais antiga e madura, mas ambas são semelhantes na forma como funcionam.Há muito poucas coisas que eu poderia fazer no NAnt que também não posso fazer no MSBuild, então a questão é com qual você se sente mais confortável.Quanto ao quão ativo o NAnt é, não vá até quando foi o último lançamento... em vez disso, vá até quando foi a última compilação noturna.O NAnt tende a demorar muito entre os lançamentos, mas as compilações noturnas geralmente são bastante estáveis.

Assim como tantas pessoas já indicaram, a resposta aqui é “depende”.Existem algumas coisas como operações repetidas que são muito mais simples e limpos no NAnt.Ver os fóruns do MSDN para uma discussão sobre isso.

Acho que você também pode usar uma abordagem híbrida, especialmente em projetos maiores.Muitos de nossos scripts nant estão sendo convertidos para msbuild quando novos componentes são desenvolvidos.Ambos suportam os mesmos recursos principais e podem chamar um ao outro se você encontrar uma tarefa que seja suportada nativamente em um, mas não no outro.

Para um novo desenvolvimento .NET, começar com o MSBuild pode economizar muito tempo, pois ele pode executar os arquivos da solução diretamente.Estender da compilação principal para executar outras tarefas (controle de origem, implantação, etc.) funciona muito bem.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top