Pregunta

Estoy usando MSBuild para crear mis cosas.Quiero usar CruiseControl.net como en Build Server.

Ahora, CCNET hace referencia a nAnt mucho, 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 no tener soporte, con una versión Beta que ya tiene casi un año.

En breve:De hecho, estoy bastante contento con MSBuild (especialmente porque es la interfaz 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 elementos relacionados con la compilación automatizada)

¿Fue útil?

Solución

Si está bastante satisfecho con MSBuild, entonces me quedaría con MSBuild.Este puede ser uno de esos casos en los que la herramienta que aprende primero es la que preferirá.Comencé con NAnt y no puedo acostumbrarme a MSBuild.Estoy seguro de que ambos seguirán presentes 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 exactamente la pregunta opuesta en su blog el año pasado.

Otros consejos

En mi opinión es más una cuestión de preferencia personal.nAnt es un gran marco 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 a la parte de sus preguntas sobre "aún es compatible", pero diría que si ya se siente cómodo con nAnt, entonces probablemente sea viable.Si usted (o alguien de su grupo) está familiarizado con MSBuild, esa también es una buena manera de hacerlo.

Si ya tiene un montón de tareas personalizadas que usa con nAnt, continúe con ellas: no gana mucho con MSBuild.Dicho esto, no parece haber nada que nAnt pueda hacer que MSBuild no pueda hacer en esencia.Ambos pueden llamar a herramientas externas, ambos pueden ejecutar tareas personalizadas basadas en .Net y ambos tienen un montón de tareas comunitarias disponibles.

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

El Tareas comunitarias de MSBuild son una buena base de tareas de terceros para empezar y cubren la mayoría de las cosas personalizadas que hice en nAnt, incluida la compatibilidad con VSS y Subversion.

Sinceramente, depende de lo que se adapte mejor a tu entorno.Si utiliza muchas herramientas que no son de Microsoft, nunit, ccnet, ncover.Probablemente encontrará un mejor soporte con nant.Alternativamente, si está utilizando MSTest, TFSBuild, probablemente encontrará que MSBuild es un mejor entorno.Aprendería ambos y usaría cuál se adapta mejor a su entorno.

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

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

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

Creo que también se puede utilizar un enfoque híbrido, especialmente en proyectos más grandes.Muchos de nuestros scripts nant se convierten a msbuild cuando se desarrollan nuevos componentes.Ambos admiten las mismas funciones principales y pueden llamarse entre sí si encuentra una tarea que sea compatible de forma nativa con uno pero no con el otro.

Para un nuevo desarrollo .NET, comenzar con MSBuild puede ahorrarle mucho tiempo, ya que puede ejecutar los archivos de la solución directamente.Extender desde la compilación principal para realizar otras tareas (control de código fuente, implementación, etc.) funciona bastante bien.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top