2012-01-06 21 views
14

Necesito ejecutar MSBuild desde la línea de comandos utilizando el símbolo del sistema de Visual Studio (2010). Antes funcionaba bien. Ahora, cuando abro la ventana me sale el siguiente mensaje de error:El símbolo del sistema de Visual Studio muestra " Common era inesperado en este momento"

\Common was unexpected at this time. 

Intentar ejecutar el comando msbuild después de eso falla.

Naturalmente, supuse que era un problema con una entrada sin comillas en mi variable de entorno PATH, posiblemente a partir de una instalación deshonesta reciente. Lo comprobé, pero el PATH parece ser kosher.

Al explorar el sistema de archivos, descubrí que el archivo de proceso por lotes ejecutado por el indicador es C: \ Archivos de programa (x86) \ Microsoft Visual Studio 10.0 \ VC \ bin \ vcvars32.bat. Lo edité poniendo en ECHO declaraciones para rastrear la ubicación del error. Eso pareció apuntar a un error en esta línea:

@if not "%WindowsSdkDir%" == "" (

Si quito las comillas, el error es diferente: "Los archivos no se esperaba en este momento."

Los siguientes 2 líneas después de esto son ahora:

@echo 51 
@set "PATH=%WindowsSdkDir%bin\NETFX 4.0 Tools;%WindowsSdkDir%bin;%PATH%" 

I asumido la sentencia anómala fue la segunda línea, pero la declaración echo no produce ninguna salida, por lo que no saben que podrían estar sucediendo

estoy usando una versión de 64 bits de Windows 7.

Le agradecería cualquier ayuda en absoluto.

+0

Como está utilizando ventanas de 64 bits, creo que se refiere al archivo de 64 bits bat 'C: \ Archivos de programa \ Microsoft Visual Studio 9.0 \ VC \ bin \ amd64 \ vcvarsamd64.bat' y no al 32 archivo de bit como ha mencionado. Desafortunadamente, ¡no tengo una máquina de 64 bits para probar! –

Respuesta

27

Consulte this hilo.

Supongo que su PATH se ha modificado recientemente y ahora contiene alguna ruta de carpeta con comillas dentro.

HTH

+3

¡Perfecto! Gracias. Quité las comillas y funciona de nuevo. No lo había intentado con la suposición de que Windows todavía necesita las comillas para evitar que se confunda con espacios. Parece que ese no es el caso más. ¡Gracias de nuevo! – Richard

+0

@Richard my pleasure :) –

+1

¡Muchas gracias! ¡Perdí 2 días en esto y nada me ayudó! Finalmente tu respuesta vino a rescatar! ¡Rock! –

0

que había entre comillas (") en la variable PATH que causó esto, después de que les quité empezado a trabajar.

3

Mi problema era que en el interior de un bloque if la rval de una variable asignación (%% en mi caso PATH) contenía un paréntesis, por ejemplo:

set var=foo) got ya 

if 1 == 2 (
    set var2=%var% 
) 

Muestra "consiguió fue inesperado en este momento."

encontré el Answ er aquí: Batch file variable with spaces and parentheses. Lo cual es usar la sintaxis extendida del conjunto. Por ejemplo:

set "var2=%var%" 

Esto no agrega comillas y no afecta el resultado almacenado en% var2%.

Cuestiones relacionadas