2011-06-14 30 views
16

Tengo una línea de comando de MSBuild que puede construir una solución completa. Se ve algo como esto:¿Cómo apuntar a un proyecto .NET específico dentro de una Solución usando MSBuild desde VS2010?

msbuild SomeSolution.sln/p: Configuración: CustomDebug; Plataforma = OurPlatform/nodeReuse: falsa/maxcpucount: 4/t: Construir

Sé que para C++ Soluciones, específica proyectos pueden ser dirigidos con la siguiente sintaxis:

msbuild SomeSolution.sln/p: Configuración: CustomDebug; Plataforma = OurPlatform/nodeReuse: falsa/maxcpucount: 4 /t: carpeta \ SomeCppProject; Build

Estoy tratando de lograr lo mismo para los proyectos .NET dentro de una solución. Esto no funciona:

msbuild SomeSolution.sln/p: Configuración: CustomDebug; Plataforma = OurPlatform/nodeReuse: falsa/maxcpucount: 4 /t: SomeDotNetProject; Construir

¿Alguien sabe cómo apuntar a un proyecto específico dentro de una solución usando MSBuild en la línea de comando para proyectos .NET? Sé que puedo crear un proyecto personalizado de MSBuild para lograr lo que busco, pero necesito compartir la solución y los proyectos con Visual Studio.

Gracias!
-Sean

Respuesta

0

invocación MSBuild en el archivo de proyecto en lugar del archivo de solución (ref. msbuild /?)

msbuild SomeDotNetProject\SomeDotNetProject.csproj /p:Configuration:CustomDebug;Platform=OurPlatform /nodeReuse:false /maxcpucount:4 /t:Build 
+5

que no funciona por dos razones: - Utilizamos referencias del proyecto, que no parecen resolver adecuadamente - Usamos configuraciones de soluciones que se correlacionan con diferentes combinaciones de "configuraciones" y plataformas. Simplemente probando (por casualidad), llegamos al lugar donde se construyeron las dependencias, pero fallaron donde esperaban que la plataforma/configuración coincidiera. –

+0

Esto fue útil, excepto que necesitaba usar un signo igual después de "/ p: Configuración" así que en lugar de "/ p: Configuración: CustomDebug" algo así como "/ p: Configuration = CustomDebug", esto solucionó un error que estaba obteniendo. –

39

que necesitará para especificar las carpetas de soluciones en el archivo de Visual Studio solución, y reemplaza cualquier "." en el nombre del proyecto por "_":

msbuild SomeSolution.sln /p:Configuration:CustomDebug;Platform=OurPlatform /t:Folder\Project_Name

Por ejemplo, si usted tiene un proyecto en la carpeta de soluciones "Implementar" llamado "MyApplication.Deployment.csproj", tendrá que

msbuild SomeSolution.sln /p:Configuration:CustomDebug;Platform=OurPlatform /t:Deploy\MyApplication_Deployment

incidentially esta es una carpeta de soluciones , como se muestra en Visual Studio, no una carpeta de sistema de archivos: los que son ignorados.

+1

/t: Implementar \ MyApplication_Deployment funciona para mí, pero ¿cómo definir el objetivo para construir este proyecto?/ t: Implementar \ MyApplication_Deployment: Rebuild funciona, pero no hay objetivos personalizados. – benwasd

+2

De acuerdo con http://msdn.microsoft.com/en-us/library/vstudio/ms164311.aspx es posible que necesite usar ';' –

+1

Y hay también http://msdn.microsoft.com/en-us/library/ms171486.aspx –

2

Usted puede utilizar la siguiente orden para la construcción de su proyecto utilizando msbuild de comandos

msbuild Solution.sln /p:Configuration=Release;Platform=x86 /t:ProjectName:Rebuild 
Cuestiones relacionadas