2011-02-11 5 views
24

estoy corriendo msbuild desde la línea de comandos con el siguiente:msbuild -p: outputdir = c: mydir ser ignorado

msbuild mysolution.sln -p:outputdir=c:\mydir 

Cuando ejecuto esto, el outputdir está siendo ignorada y el valor predeterminado especificado en el archivo csproj está siendo utilizado.

El documento de MSDN para esta herramienta dice que debería poder sobrescribir el directorio de construcción usando este parámetro. ¿Qué estoy haciendo mal?

+1

He cometido un error aquí con el uso de -p en lugar de/p. El doco de MSDN para la referencia de línea de comandos de MSBuild (http://msdn.microsoft.com/en-us/library/ms164311.aspx) se refiere incorrectamente a outputdir. – Mike

+0

Debería hacer su comentario y responder en su lugar. –

Respuesta

61

Debe utilizar OutputPath y más importante que debe utilizar la sintaxis correcta:

msbuild mysolution.sln /p:OutputPath=c:\mydir 
+0

Gracias por su ayuda en este caso. Creo que te refieres a/p en lugar de -p cuando te refieres al problema de sintaxis. De hecho, estaba usando el/p en cmd.exe, pero me equivoqué aquí: demasiada PowerShell. En cuanto a la ruta de salida, muerta. Gracias. – Mike

+0

También funcionó para mí ... Estaba usint/P: outputdir en lugar de/p: outputpath –

+2

Asegúrese de dejar el final '\'.'/ p: OutputPath = c: \ mydir' y NOT'/p: OutputPath = c: \ mydir \ ' –

2

Creo que deberías estar usando OutputPath.

8

Tenga en cuenta que OutputPath se prefiere sobre OutDir. La documentación solía ser incorrecta sobre esto, pero veo que finalmente lo arreglaron.

Más allá de eso, es difícil decir exactamente cuál es el problema, ya que no mostró la ruta exacta que está pasando como parámetro. Hay dos posibles problemas que pueda imaginar:

  1. La opción OutputPath especifica la ruta de acceso al directorio de salida relativa al directorio del proyecto. Eso significa que no puede establecerlo en una ruta global como C:\mydir. Supongo que no puede encontrar la ruta que especificó, por lo que se predetermina a la especificada en su archivo de proyecto.

  2. Si la ruta que está realmente especificando como parámetro contiene espacios, es probable que el comando falle. Creo que debes envolver la ruta entre comillas y añadir una barra invertida adicional al final de la cadena de ruta.

+0

Gracias por toda su ayuda Cody. El doco que he estado leyendo (Referencia de la línea de comandos de MSBuild para VS 2010: http://msdn.microsoft.com/en-us/library/ms164311.aspx) usa OutputDir. Yo diría que estamos leyendo diferentes páginas. Ahora también he creado correctamente, usando una referencia de directorio absoluta como c: \ mydir. – Mike

+0

@Mike: estas cosas suceden cuando documenta las mismas características exactas en tantos lugares diferentes. No estoy seguro si estás diciendo que 'OutputPath' no funcionó para ti. 'OutDir' * will * aún funcionará. –

+2

CHICOS. No hay un parámetro 'OutputDir'. Solo hay 'OutputPath' y' OutDir'. Deja de agregar a la confusión. –

Cuestiones relacionadas