stagingdirectory artifactstagingdirectory argumentos build tfs msbuild release devenv

artifactstagingdirectory - msbuild options



especificar el archivo de proyecto de una soluciĆ³n usando msbuild (3)

Quiero la línea de comando para construir un proyecto particular de una solución usando msbuild como lo hacemos con devenv.com.In devenv.com podemos especificar un proyecto de una solución usando la siguiente línea de comando

devenv.com /Build Release|x86 test.sln /project "testproject"

Usando la línea de comando anterior, puedo construir el proyecto de prueba en el test.sln usando devenv.com.What es la línea de comando para msbuild para la misma solución.

Gracias


MSBuild realmente funciona mediante el uso de proyectos, no la solución. La solución solo se usa para analizar internamente en un archivo de proyecto temporal en MSBuild. Debería poder construir el proyecto de interés directamente a través de MSBuild ejecutando el siguiente comando.

"msbuild testproject /p:Configuration=Release /p:Platform=x86"

Hay un problema importante que sé que podría enfrentar al usar el proyecto directamente en lugar de la solución: si usa la solución para expresar dependencias entre los proyectos, en lugar de agregar las referencias al proyecto y dejar que el sistema de compilación resuelva las dependencias automáticamente .

Si está ejecutando una orden de compilación utilizando el archivo sln, le recomiendo que trabaje esas dependencias directamente en los archivos de proy los elimine del archivo sln. Esto le permitirá invocar directamente cualquier archivo de proyecto de MSBuild y todos los proyectos se compilarán independientemente sin ningún trabajo adicional. Debería tratar el archivo sln como un grupo de proyectos para facilitar el trabajo en Visual Studio y no como una entrada de compilación.


Publicar como información para futuros buscadores

Agregue lo siguiente al script de compilación y ejecútelo una vez. Esto generará los objetivos exactos y otra información que usará msbuild.

Ej .: si tienes . en el nombre o las carpetas del proyecto, msbuild esperará _ en lugar de . .

set MSBuildEmitSolution=1

Después de obtener la información, actualice el script de compilación con los detalles requeridos.


msbuild test.sln /t:project /p:Configuration="Release" /p:Platform="x86" /p:BuildProjectReferences=false

Observe que lo que se asigna a /t es el nombre del proyecto en la solución, puede ser diferente del nombre del archivo del proyecto.
Además, si contiene un punto, reemplácelo con un guión bajo.

Un comentario importante de @Watusimoto:
si su proyecto tiene a . (punto) en su nombre, reemplácelo con un _ (guión bajo) al especificarlo con / t

También puedes construir múltiples proyectos a la vez:

msbuild test.sln /t:project;project2 /p:Configuration="Release" /p:Platform="x86" /p:BuildProjectReferences=false

Para reconstruir o limpiar, cambie /t:project to /t:project:clean o /t:project:rebuild