Es nAnt todavía apoyado y conveniente for.net 3.5 / VS2008?


Estoy usando MSBuild para construir mis cosas. Quiero usar CruiseControl.net as by Build Server.

Ahora, CCNET se refiere mucho a nAnt, pero parece que ccnet puede hacer la mayoría de las cosas que nant podría hacer a través de la configuración del proyecto y msbuild. Además, nAnt parece un poco sin soporte, con una versión Beta que ya tiene casi un año.

En resumen: En realidad estoy bastante contento con MSBuild (especialmente porque es el front end del compilador "oficial") y un poco incómodo con nAnt, pero no quiero juzgar prematuramente.

¿Cuáles serían las razones para usar nAnt sobre MSBuild? Especialmente con ccnet, que parece superponerse un poco con nant en términos de características (y agregar las cosas relacionadas con la compilación automatizada)

Author: Keith, 2008-08-04

7 answers

Si estás bastante contento con MSBuild, entonces me quedaría con MSBuild. Este puede ser uno de esos casos en los que la herramienta que aprendes primero es la que preferirás. Empecé con NAnt y no puedo acostumbrarme a MSBuild. Estoy seguro de que ambos estarán por aquí durante bastante tiempo.

Hay algunas diferencias fundamentales entre los dos, probablemente mejor resaltadas por esta conversación entre algunos fans de NAnt y un Microsoftie.

Curiosamente, Jeremy Miller hizo la pregunta exactamente opuesta en su blog el año pasado.

 15
Author: Brad Tutterow,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-08-04 22:52:31

En mi opinión es más una cuestión de preferencia personal. nAnt es un gran framework y MSBuild es casi tan capaz. Con la capacidad de desarrollar fácilmente tareas personalizadas (en ambos marcos) puede lograr casi cualquier cosa que necesite hacer.

No puedo responder la parte "aún soportada" de sus preguntas, pero diría que si ya está cómodo con nAnt, probablemente sea viable. Si usted (o alguien en su grupo) está familiarizado con MSBuild, entonces esa es una buena manera para ir también.

 5
Author: palehorse,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-08-04 15:12:37

Si ya tiene un montón de tareas personalizadas que usa con nAnt, quédese con ellas - no gana mucho con MSBuild. Dicho esto, no parece haber nada que nAnt pueda hacer que MSBuild no pueda en su núcleo. Ambos pueden llamar a herramientas externas, ambos pueden ejecutar tareas personalizadas basadas en.Net, y ambos tienen un montón de tareas de la comunidad por ahí.

Estamos usando MSBuild aquí por la misma razón que usted: es el sistema de compilación predeterminado para VS ahora, y no teníamos nada específico de nAnt de qué preocuparnos sobre.

Las tareas de Msbuildcommunityt son una buena base de tareas de terceros para empezar, y cubre la mayoría de las cosas personalizadas que he hecho en nAnt, incluyendo VSS y soporte Subversion.

 3
Author: Greg Hurlman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-08-04 15:52:42

Honestamente, depende de lo que se ajuste mejor a su entorno. Si está utilizando muchas herramientas que no son de Microsoft, nunit, ccnet, ncover. Probablemente encontrará mejor apoyo con nant. Alternativamente, si está utilizando MSTest, TFSBuild, probablemente encontrará MSBuild un mejor entorno. Aprendería ambos y usaría que cada uno encaja más suavemente con su entorno.

 1
Author: Nick Berardi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-08-04 15:37:31

CC.NET es simplemente la tecnología de servidor de compilación, no la tecnología de script de compilación. Nosotros usamos CC.NET en el trabajo para llamar con éxito MSBuild scripts de construcción sin problemas.

NAnt es un lenguaje de construcción de scripts más antiguo y maduro, pero ambos son similares en su forma de trabajar. Hay muy pocas cosas que podría hacer en NAnt que no pueda hacer también en MSBuild, por lo que realmente se reduce a cuál te sientes más cómodo. En cuanto a qué tan activo es NAnt, no vayas cuando la última versión ser...en lugar de ir por cuando la última construcción nocturna fue. NAnt tiende a pasar mucho tiempo entre lanzamientos, pero las compilaciones nocturnas suelen ser bastante estables.

 1
Author: Scott Dorman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-08-29 04:23:19

Como lo que tantas personas ya han indicado, la respuesta aquí es "depende". Hay algunas cosas como operaciones repetitivas que son mucho más simples y limpias en NAnt. Vea los foros de MSDN para una discusión sobre esto.

 0
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-04 20:52:25

Me parece que también se puede utilizar un enfoque híbrido también, especialmente en proyectos más grandes. Muchos de nuestros scripts nant se están convirtiendo a msbuild cuando se desarrollan nuevos componentes. Ambos admiten las mismas características principales y pueden llamarse entre sí si encuentra una tarea que se admite de forma nativa en una pero no en la otra.

Para el nuevo desarrollo de.NET a partir de MSBuild puede ahorrarle mucho tiempo, ya que puede ejecutar los archivos de la solución directamente. Extendiendo desde la compilación principal a realizar otras tareas (control de código fuente, implementación, etc.) funcionan bastante bien.

 0
Author: Rob Hunter,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-29 14:00:55