especificar el archivo de proyecto de una solución usando msbuild

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 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

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 express dependencias entre los proyectos, en lugar de agregar las referencias al proyecto y dejar que el sistema de comstackción resuelva las dependencias automáticamente .

Si está ejecutando una orden de comstackció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 comstackrá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 comstackción.

Publicar como información para futuros buscadores

Agregue lo siguiente al script de comstackción y ejecútelo una vez. Esto generará los objectives 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 comstackción con los detalles requeridos.