2009-09-30 18 views
22

Soy un desarrollador solitario ejecuta Visual Studio 2008 y que mira en MSBuild para mejorar mi proceso de construcción.La integración de MSBuild en Visual Studio

Casi todos los tutoriales que he encontrado hasta ahora tienen mucha información sobre cómo escribir un archivo de compilación. Sin embargo, tengo muchos problemas para descubrir cómo integrar MSBuild en Visual Studio. Tal vez MSBuild sólo se utiliza con algo como climatizador pero eso es una exageración para mí como un único promotor.

¿Dónde debería estar el archivo de compilación en vivo en un proyecto de Visual Studio y cómo puedo ejecutarlo desde el IDE?

Respuesta

20

Visual Studio ejecuta MSBuild automáticamente para los proyectos que admite.

Si hace clic derecho en un proyecto y lo descarga, puede editarlo en Visual Studio. Recarga (haz clic derecho en el proyecto de nuevo), forza una (re) construcción para probar tus cambios. Una alternativa es editar el archivo del proyecto en un editor externo y Visual Studio detectará las copias guardadas y ofrecerá volver a cargar el proyecto por usted.

Parece que va por buen camino, y si está pensando en escribir destinos o tareas de MSBuild personalizadas, tómese el tiempo para separarlos de su proyecto actual para que pueda volver a utilizarlos. No reinventar la rueda, sin embargo, los dos principales proyectos de MSBuild complementarios son MSBuild Community Tasks y MSBuild Extension Pack.

Actualización: A juzgar por su comentario sobre la respuesta de Mitch, también puede considerar agregar un nuevo elemento de configuración o propiedades personalizadas a un proyecto. Una nueva configuración de MSBuild (algo distinto de la depuración/versión predeterminada) podría ejecutar pruebas de unidades, documentación de compilación o lo que quieras automatizar. Una propiedad MSBuild personalizada le permitiría usar la configuración normal de depuración/liberación y extend it para automatizar más de su proceso de compilación, simplemente depende de lo que desee.Cualquiera de los enfoques también podría ser conducido desde el command line.

1

Su archivo .csproj es un archivo MSBuild. Entonces ya lo estás usando.

Por supuesto, puede desear crear un archivo de compilación separado para tener más control, especialmente en una integración continua o una creación nocturna, por ejemplo.

Si simplemente desea editar el archivo de compilación de su proyecto, puede usar el IDE para editar algunas configuraciones como pre y post crear acciones o editar el Xml descargando el proyecto y haciendo clic derecho y editando.

+0

Am I pasar por la borda por querer un fichero de construcción por separado si no estoy usando CI o versiones compiladas? La construcción es un pequeño complejo, eso es todo. –

+0

@Alex no te estás excediendo. el mayor costo es la curva de aprendizaje y parece que ya estás en ese camino, así que diría que vale la pena la inversión de aprendizaje para hacerlo con un archivo de compilación separado. Mire las extensiones de compilación e incluso el software de compilación de licencias si puede pagar, ya que puede ser de ayuda. – dove

2

MSBuild es el motor de compilación utilizado por Visual Studio para procesar los archivos incluidos en un proyecto.
Los propios archivos de proyecto de Visual Studio (**. Csproj * para C# y .vbproj para VB, por ejemplo) son en realidad scripts de MSBuild que se ejecutan cada vez que se crea un proyecto.

1

Puede usar sus archivos .vcproj actuales para compilar su proyecto con MSBuild. Sin embargo, como no se admite directamente MSBuild (al menos para vC++) vcbuild se utiliza en lugar (internamente). En VS2010 todos los archivos de proyecto están basados ​​en MSBuild ...

0

Le sugiero que llame a msbuild como un paso posterior a la compilación. Luego puede colocar su script de construcción en algún lugar de su solución y llamarlo.

<windowsdir>\Microsoft.NET\Framework\v3.5\MSBuild.exe c:\temp\MyProject\mybuildfile.proj 
+0

Yuck. Los objetivos BeforeBuild o AfterBuild son mucho mejores anzuelos. – si618

+0

@Si: en el enlace proporcionado por @Mike Two, los objetivos BeforeBuild y AfterBuild son supuestamente para soporte heredado. http://blogs.msdn.com/msbuild/archive/2005/11/23/496396.aspx –

+0

@Gerrie: ¿Eso no significa que estaría construyendo dos veces? –

0

La forma más sencilla es probablemente para invocar el script de generación personalizada utilizando una etapa posterior a la generación. proyecto botón derecho del ratón, seleccione "Crear eventos" y msbuild llamada con su archivo msbuild personalizado desde allí.

+0

Pero entonces ¿no estoy construyendo dos veces? (Una vez en VS y una vez en MSBuild?) –

5

Como han notado otros, MSBuild ya está disponible cuando instala Visual Studio.

Si desea integrar en VS2008: Running MSBuild from Visual Studio

+1

Me gustaría hacer clic derecho en un archivo de compilación y seleccionar "Crear". Esto está llegando. –

1

Además, no olvide que puede utilizar el MSBuild SideKick para desarrollar y depurar sus msbuilds (locales), disponible de forma gratuita en http://www.attrice.info/msbuild/

Cuestiones relacionadas