2008-11-17 24 views
5

Me gustaría configurar un servidor de compilación de C++ no administrado código desarrollado en Visual Studio 2005. La construcción de servidor debe ser capaz de hacer lo siguiente:Generar solución para C++

  • supervisar un depósito de la subversión de los cambios de código y programar una acumulación
  • código de Pedido de la subversión y la unidad de ejecutar pruebas de
  • proporcionar algún tipo de informe sobre el éxito de construcción y cambios de acumulación anterior

principio me he estado buscando g al usar CruiseControl con Ant. ¿Hay una mejor solución? ¿Tal vez CruiseControl.Net y NAnt?

Respuesta

0

Acabo de comenzar utilizando Visual Build Professional y estoy muy impresionado, Puede descargar una prueba con todas las funciones 30 días desde aquí:

http://www.kinook.com/VBP/

SVN es totalmente compatible también.

0

Utilizamos FinalBuilder para la construcción de nuestros proyectos de Visual Studio 2005, incluido el empaquetado de los archivos ex ex y dlls con InstallShield y los colocamos en un servidor compartido.

También hacemos telnet (de FinalBuilder) a otras plataformas (Unix/Linux/OpenVMS) y comenzamos las construcciones remotas ejecutando makefiles allí.

No usamos construcción continua, pero hay un servidor FinalBuilder que maneja eso y viene gratis con la licencia de FinalBuilder Professional.

Estamos muy contentos con FinalBuilder, es bastante fácil ponerse al día y lo suficientemente potente como para resolver la mayoría de los problemas.

2

NAnt toma bastante trabajo para construir C++ de manera efectiva. Realmente es un sistema de compilación .NET de principio a fin. Estamos construyendo nuestro título para cuatro plataformas C++ más un conjunto de herramientas .NET, y nos tomó un tiempo adaptar a NAnt a nuestras necesidades. Por ejemplo, el análisis de dependencia C++ de NAnt está tan roto que tuvimos que escribir el nuestro. Y tiene muchos problemas de rendimiento que tuvimos que solucionar para solucionarlo.

Así que no saltes con los dos pies en esto. Realice algunas pruebas preliminares para asegurarse de que realmente pueda hacer lo que quiera y tenga una idea de cuánto tendrá que modificar para C++.

Además, estamos usando CruiseControl.NET también para algunas cosas de NUnit que hemos incorporado en una de nuestras herramientas que impulsa el juego que estamos desarrollando. Muy feliz con esto, fue increíblemente fácil de configurar. Grandes pulgares aquí.

En un concierto anterior, utilicé Final Builder en el escenario exacto que describe: en el servidor de compilación. Las compilaciones locales se hicieron usando Visual Studio. Es un producto bastante impresionante que consideraría seriamente si tiene un poco de dinero para gastar. No tuvimos más que buenos resultados.

En mi compañía actual fuimos con NAnt porque no queríamos comprar FB por cada ingeniero en el equipo. Tampoco nos gustó cómo FB es de código cerrado. Entonces somos 100% Nant y nos está gustando. ¡Solo me tomó un tiempo para ponerlo en forma!

+0

Utilizamos NAnt con bastante éxito como herramienta de compilación, pero * no * como analizador de dependencias. Como usted dijo, NAnt no tiene un buen rendimiento en ese sentido. Simplemente lo usamos para llamar a msdev y bjam. – MattyT

0

Utilizamos CruiseControl.Net y NAnt (y Subversion) y estamos contentos con los resultados.

0

¡Los proyectos de Visual Studio 2005 son perfectamente capaces de ejecutarse desde la línea de comandos! Sólo hacer

devenv.com whatever.sln /build 'Release|Win32' /project whatever 

(whatever reemplazar con el nombre del proyecto y Release|Win32 con la configuración y la plataforma que necesita). Esto puede ser ejecutado trivialmente por CruiseControl o Jenkins o lo que sea.

0

En Visual Studio 2010, Microsoft finalmente actualizó el formato de los archivos de proyecto de Visual C++ (.vcproj) a su formato de clonación NAnt basado en XML MSBuild, ahora denominado .vcxproj. Esto significa que los proyectos C++ se compilarán sin mucho esfuerzo utilizando la tarea.

Si puede prever que solo va a tener un equipo pequeño y un número limitado de compilaciones, recomendaría TeamCity (http://www.jetbrains.com/teamcity/) con NAnt. TeamCity es un servidor de CI basado en Java (más fácil de implementar en un servidor de compilación de Linux) que admite agentes de compilación separados (por lo que podría tener varias máquinas virtuales de Windows o un cuadro dedicado ejecutando sus compilaciones).

El soporte de TeamCity para compilaciones basadas en MSBuild, NAnt y Ant es excelente y tiene una GUI basada en AJAX muy agradable que es un placer usar y le permite configurar y configurar proyectos desde su navegador. Sin embargo, si cruzas el límite de 20 proyectos de la edición gratuita, se vuelve irrazonablemente costoso.

La otra opción que puedo recomendar sería Jenkins con NAnt, Ant, MSBuild o uno de los muchos sistemas de compilación que Jenkins puede admitir. Jenkins es de Código Abierto y manejará proyectos ilimitados, como TeamCity, puede ejecutarse en un servidor mientras envía compilaciones a agentes de compilación separados y tiene complementos para muchas herramientas de C++ (piense en análisis estático, pruebas de unidades y empaquetado).

La interfaz web de Jenkins no es tan conveniente y bonita como TeamCity, pero se usa ampliamente y tiene complementos para casi cualquier cosa.

2

Dado que nadie ha mencionado, Jenkins es un buen CI y se está volviendo más y más común (ser libre tampoco es malo):

http://jenkins-ci.org/

Fácil de instalar, usar y controlar e integra muy bien con muchas cosas (SVN, GIT, etc.). También muy personalizable. Tarda 5 minutos para ponerlo en funcionamiento.

Cuestiones relacionadas