Tengo un proyecto con un evento posterior a la construcción:
copy $(ProjectDir)DbVerse\Lunaverse.DbVerse.*.exe $(TargetDir)
Funciona bien siempre en mi máquina. Tengo un nuevo desarrollador que siempre recibe el error "salió con el código 1". Le pedí que ejecutara el mismo comando en un indicador de DOS y funcionó bien. ¿Qué podría estar causando esto? ¿Hay alguna forma de llegar al error real?
Ambos estamos usando Visual Studio 2008.
visual-studio-2008
post-build
Tim Scott
fuente
fuente
Respuestas:
Tenía un espacio en uno de los nombres de carpeta en su ruta, y no tenía comillas.
fuente
El de los "Pings" me ayudó ... pero se puede explicar un poco mejor ...
Para mí la solución fue cambiar:
a esto:
Espero que funcione para ti. :-)
fuente
He añadido esto para futuros visitantes ya que es una pregunta bastante activa.
ROBOCOPY sale con "códigos de éxito" inferiores a 8. Consulte: http://support.microsoft.com/kb/954404
Esto significa que:
Así que resolví esto fácilmente agregando esto al final del archivo por lotes
Sugerir que maneje los errores de ROBOCOPIA de esta manera
La confusión se establecerá cuando no se copien archivos = no hay error en VS. Luego, cuando hay cambios, los archivos se copian, VS errores, pero se hizo todo lo que el desarrollador quería.
Consejo adicional: no utilice una pausa en el script, ya que se convertiría en una pausa indefinida en la compilación de VS. mientras desarrolla el guión, use algo como
timeout 10
. Notarás esto y lo comentarás en lugar de tener una compilación colgante.fuente
Mi razón para el Código 1 fue que la carpeta de destino era de solo lectura. ¡Espero que esto ayude a alguien! Tuve un evento de compilación posterior para hacer una copia de un directorio a otro y el destino era de solo lectura. ¡Así que simplemente desmarqué el atributo de solo lectura en el directorio y todos sus subdirectorios! ¡Solo asegúrese de que sea un directorio seguro para hacerlo!
fuente
Obtenga el monitor de proceso de SysInternals configúrelo para observar el Lunaverse.DbVerse (en el campo Path) y ver el resultado de la operación. Debería ser obvio a partir de ahí lo que salió mal
fuente
Tuve que ejecutar VS como administrador para que mi copia posterior a la compilación en un sistema operativo protegido ".. \ Common7 \ IDE \ PrivateAssemblies" funcionara
fuente
Para aquellos, que utilizan ' copia ' comando en Eventos de generación ( línea de comandos del evento Pre-construcción o / y la línea de comandos del evento posterior a la generación ) de Proyecto -> Propiedades : le ' copiar ' parámetros de comando debe ser similar aquí:
copy "source of files" "destination for files"
. Recuerde utilizar comillas (para evitar problemas con los espacios en las cadenas de direcciones).fuente
Tuve un problema similar pero específicamente en un entorno de compilación de Jenkins. Para solucionar el problema, cambié de usar un comando de copia en el evento posterior a la compilación a usar un destino de copia.
Cambié esto:
a esto:
y funciona bien ahora.
El error específico que recibía era:
fuente
Pude arreglar mi Código 1 ejecutando Visual Studio como administrador. Aparentemente, no tenía acceso para ejecutar los comandos de shell sin Admin.
fuente
Como buena práctica, le sugiero que reemplace el evento posterior a la compilación con una tarea de copia de archivo de compilación de MS .
fuente
Para mí, tenía que asegurarme de que el programa al que estaba copiando el archivo no se estuviera ejecutando en ese momento. No hubo errores en la sintaxis. Espero que esto ayude a alguien.
fuente
Acabo de recibir el mismo error. Tenía un% en la ruta de destino que necesitaba escapar
necesitaba ser
fuente
Ok, este es un problema con muchas soluciones, así que publico el mío para dar más pistas a la gente. Mi situación es verificar las carpetas en su ruta y asegurarme de que todas existan en su máquina. Por ejemplo: "$ (SolutionDir) \ partBin \ Bin \ $ (ProjectName) .pdb", pero "Bin" no está en la carpeta partBin.
fuente
$(SolutionDir)
es redundante.Para aquellos que usan el comando 'copiar' en Eventos de compilación (línea de comando de evento previo a la compilación o / y línea de comando de evento posterior a la compilación) desde Proyecto -> Propiedades: la carpeta de destino debe existir
fuente
Tantas soluciones ...
En mi caso, tuve que guardar el archivo bat con codificación no Unicode (Western, Windows). De forma predeterminada, cuando agregué el archivo a Visual Studio (y probablemente debería haberlo hecho fuera del VS), se agregó con codificación UTF-8.
fuente
Tuve el mismo problema y resultó que era porque había cambiado el nombre del proyecto. Entré en las propiedades del proyecto y cambié el nombre del ensamblado y el espacio de nombres raíz al nombre del proyecto y funcionó muy bien después de eso.
fuente
Otra respuesta más ...
En mi caso, tuve un proyecto de Visual Studio 2017 dirigido tanto a .Net Standard 1.3 como a .Net Framework 2.0. Esto se especificó en el archivo .csproj así:
También tuve una línea de comando de evento posterior a la compilación como esta:
En otras palabras, estaba tratando de copiar el .Net Framework .dll producido por la compilación en una ubicación alternativa.
Esto estaba fallando con este error cuando hice una reconstrucción:
Después de mucha frustración, finalmente determiné que lo que estaba sucediendo era que Rebuild eliminó todos los archivos de salida, luego hice la compilación para .Net Standard 1.3, luego traté de ejecutar la línea de comando del evento posterior a la compilación, que falló porque el archivo que se iba a copiar aún no estaba construido.
Entonces, la solución fue cambiar el orden de construcción, es decir, compilar primero para .Net Framework 2.0 y luego para .Net Standard 1.3.
Esto ahora funciona, con el problema menor de que la línea de comando del evento posterior a la compilación se ejecuta dos veces, por lo que el archivo se copia dos veces.
fuente
En mi caso, tuve que
cd
(cambiar de directorio) antes de llamar al archivo bat, porque dentro del archivo bat había una operación de copia que especificaba rutas relativas.fuente