2010-10-08 18 views
62

Quiero automatizar el proceso de compilación para mis soluciones C#. ¿Cómo puedo crear soluciones de C# desde la línea de comandos para no tener que lidiar con dependencias manualmente?Soluciones de Building C# desde la línea de comandos con Visual Studio 2010

+0

¿Qué le hace pensar que las dependencias no importan cuando se genera en la línea cmd? Es un manual muchísimo más, tendrás que escribir el nombre completo de la ruta para el ensamblaje dependiente. –

+0

No estoy seguro de haberme entendido correctamente. Todo lo que quiero es simplemente crear una solución C# desde la línea de comandos de tal manera que (casi) solo se necesite la ruta al archivo de solución y MSBuild parece ser el camino a seguir. – alexfr

Respuesta

38

si abre un símbolo del sistema de Visual Studio desde el menú de inicio - entonces usted puede llamar MSBuild y dar a que, o bien el archivo .sln o un archivo específico .csproj para construir lo que necesita

, alternativamente, puede crear un archivo personalizado de MSBuild que se encargue de las tareas.

un consejo: asegúrese de que la versión de MSBuild que se utiliza es aplicable a la versión de infraestructura o herramientas objetivo del proyecto

es decir, si usted trata de construir una solución que se creó en VS2010 con msbuild 3.5 entonces no reconocerá el conjunto de herramientas 4.0 del proyecto

+0

Tuve que ejecutar 'vcvarsall.bat' antes de poder hacer que' msbuild' se ejecutara desde cualquier instancia cli anterior, una vez que lo hice funciona ¡como un encanto! –

+2

En su lugar, podría abrir el "Símbolo del sistema de desarrollador": Todos los programas -> Microsoft Visual Studio -> Herramientas de Visual Studio. – kroiz

17

msbuild YourSolution.sln

+3

¿Cómo sabe si hacer una compilación Debug o Release? – Qwertie

+0

"msbuild /?" para los argumentos de la línea de comandos, incluida la depuración/versión –

67

Para las soluciones que puede utilizar:

devenv /build Release Solution.sln

o

devenv /build Debug Solution.sln

+9

Esto requiere que Visual Studio esté instalado en la máquina que ejecuta la compilación. msbuild está disponible con el framework .net. –

+1

+1. Por alguna razón desconocida, msbuild no funciona en un nuevo archivo .sln generado con 'qmake -recursive -tp vc my.sln'. Tuve que abrir la solución con VS para que msbuild funcione. Con devenv, puedo automatizar el proceso qmake y compilación. Gracias –

22

Los archivos de solución y proyecto de Visual Studio también son MSBuild archivos de compilación.

Simplemente puede ejecutar MSBuild contra el archivo de solución/proyecto y se va a construir:

<path to>msbuild.exe <path to>solution/project file 
Cuestiones relacionadas