2009-11-04 12 views
5

Estoy perplejo. De repente, Visual Studio no puede encontrar archivos exe en el directorio de Windows/System32 (como xcopy, attrib, etc.).Los guiones de precompilación de Visual Studio no pueden encontrar archivos exe en windows/system32

Tengo algunos eventos de precompilación y postconstrucción que ejecutan archivos por lotes que usan xcopy y attrib. Anteriormente funcionaban bien, pero hoy, durante el proceso de compilación, Visual Studio no puede encontrarlos. Se muestra el error: 'xcopy' no se reconoce como un comando interno o externo, programa operable o archivo por lotes.

Cuando noté por primera vez el problema, intenté ejecutar xcopy en un mensaje de cmd normal y ocurrió el mismo problema. Después de reiniciar mi computadora, el problema desapareció en el indicador de cmd habitual, pero permaneció en Visual Studio. Después del reinicio, el problema no aparece en el indicador de cmd de Visual Studio, solo desde Visual Studio.

Todo parece normal si dentro de uno de los archivos por lotes ejecuto conjunto para comprobar la variable PATH o echo% SystemRoot%.

En el menú Herramientas-> Opciones, hay configuraciones para los directorios de VisualC++. Sin embargo, estoy ejecutando C#, no C++, y además, nunca cambié estas configuraciones y parecen ser correctas.

¿Alguien ha tenido este problema antes? ¿Pensamientos?

+0

Este problema se resolvió esta mañana después de otro reinicio. Lo culpo a una actualización de Windows o algo extraño realizado por un administrador de sistema rogue. – cbp

Respuesta

1

Esto solo puede ser una de dos cosas: un problema con la RUTA como se ve dentro de su archivo de proceso por lotes, o un error tipográfico en el comando que se está ejecutando (p. Ej., XCOPY).

% systemroot% no importa demasiado, ya que XCOPY y demás están en el directorio SYSTEM (en WinXP C: \ Windows \ System32), y% systemroot% es el directorio de Windows (un nivel más alto - nuevamente, en XP C: \ Windows).

+1

Eso es lo que habría pensado, pero el archivo por lotes se ejecuta correctamente cuando lo ejecuto manualmente a través de la línea de comandos (incluso el símbolo del sistema VS) – cbp

+0

Hay un caso más: en Windows 8 mi VS 2012 no podía ejecutar aplicaciones en System32 aunque se ejecutó como administrador. Tuve que mover el programa fuera de System32. – nima

4

Me encontré con el mismo problema anteriormente al intentar compilar desde Visual Studio.

tratado de ejecutar XCOPY manualmente y que estaba fallando con el mensaje "xcopy' no se reconoce como un comando interno o externo, programa o archivo por lotes"

así que intenté navegar manualmente a C: \ WINDOWS \ SYSTEM32 y ejecutado XCOPY. ¡Funcionó!

Solución:

  1. Vaya a Panel de control -> Sistema -> Configuración avanzada del sistema -> Variables de entorno

  2. cuando Windows se instala por primera vez esa variable es: % SystemRoot% \ system32;% SystemRoot%;% SystemRoot% \ System32 \ Wbem

    Pon estos al principio de RUTA variable y haga clic en Aceptar dos veces.

Tendrá que reiniciar las aplicaciones en ejecución para aplicarles la nueva ruta, no el sistema.

+0

¡ESTO SALVÓ MI VIDA! Visual Studio necesitaba estas tres variables en el frente para encontrar cosas ... ¡GRACIAS dopplesoldner! – Mizmor

+0

En mi caso, el problema ocurrió después de instalar una nueva versión de Java. Esa instalación puso su ruta al principio de la variable 'PATH', causando los problemas mencionados. – comecme

Cuestiones relacionadas