2009-05-31 18 views
5

Mantenemos una aplicación de windows de tamaño mediano desarrollada en vb/C# .net en el trabajo. Aún así, el proceso de compilación e implementación de esta aplicación es manual. Estoy decidido a automatizar este proceso utilizando MSBuild, del cual aún no tengo conocimiento.Necesita primer para un novato de Msbuild

Nuestra aplicación tiene una estructura de compilación simple, un conjunto de proyectos ya agrupados en cuatro soluciones (.sln) y solo necesita construir los cuatro slns en un pedido. Y luego publique un proyecto (que es parte del último sln que se construirá) en un directorio. Eso es. Un proceso simple que ya está consumiendo 30 minutos de tiempo de construcción manual y estoy bastante seguro de que esto se puede lograr sin interferencia manual utilizando msbuild en al menos 1/4 de las veces.

Todos mis objetivos fueron buenos, comencé a buscar en la web los recursos de MSBuild para llevar a cabo mi proceso, pero es posible que esté buscando muchas cosas que me confundieron. Necesito un puntero o una buena explicación sobre cómo comenzar y dónde comenzar para mi escenario simple. La ayuda es muy apreciada.

Respuesta

5

Esto suena como un script muy fácil de escribir. Incluso un archivo por lotes haría:

msbuild \path\to\first.sln /p:Configuration=Release 
msbuild \path\to\second.sln /p:Configuration=Release 
msbuild \path\to\third.sln /p:Configuration=Release 
msbuild \path\to\fourth.sln /p:Configuration=Release 
call deploy

Por supuesto, mucho mejor sería tener un servidor que ejecuta, dicen CruiseControl.NET, que proporciona una interfaz web en el estado de construcción y la historia.

En MS Build, hay dos puntos de control principales para la persona que llama: El objetivo y sus Propiedades. El objetivo es qué compilar, recursos, compilación, implementación, etc. Las propiedades controlan cómo se construye ese objetivo.

Puede controlar la configuración mediante la propiedad Configuración (consulte más arriba). Si abre sus archivos *. * Proj, notará PropertyGroup elementos. Estos son configurables a través de la línea de comandos usando el /p arg.

Estas son las especificaciones de los dos argumentos:

/target:<targets> Build these targets in this project. Use a semicolon or a 
       comma to separate multiple targets, or specify each 
       target separately. (Short form: /t) 
       Example: 
        /target:Resources;Compile 

/property:<n>=<v> Set or override these project-level properties. <n> is 
       the property name, and <v> is the property value. Use a 
       semicolon or a comma to separate multiple properties, or 
       specify each property separately. (Short form: /p) 
       Example: 
        /property:WarningLevel=2;OutDir=bin\Debug\ 
+0

Gracias por su respuesta. Pero, ¿cómo configuro las opciones de configuración y todo? Por ejemplo, depuro mis proyectos de configuración de aplicaciones en el modo DEbug, pero el script siempre debe compilarse en modo Release. Gracias de nuevo por su rápida respuesta. – blntechie

+0

He agregado detalles. Todo es bastante simple y vale la pena dominarlo. MS Build puede automatizar ** mucho **. –

1

Here's a good guide que tiene una gran cantidad de información sobre MSBuild, integración continua y CuriseControl.NET. Definitivamente es un buen lugar para comenzar.

Cuestiones relacionadas