visual-studio-2008 - snippet - visual studio code html preview
Publicar compilación salió con el código 1 (16)
Acabo de recibir el mismo error. Tenía un% en la ruta de destino que necesitaba ser escapado
c:/projects/%NotAnEnvironmentVariable%
necesitaba ser
c:/projects/%%NotAnEnvironmentVariable%%
Tengo un proyecto con un evento de creación posterior:
copy $(ProjectDir)DbVerse/Lunaverse.DbVerse.*.exe $(TargetDir)
Funciona bien cada vez en mi máquina. Tengo un nuevo desarrollador que siempre obtiene el error "salió con el código 1". Le pedí que ejecutara el mismo comando en un mensaje de DOS, y funcionó bien. ¿Qué podría estar causando esto? ¿Hay alguna forma de llegar al error real?
Los dos estamos usando Visual Studio 2008.
Como una buena práctica, le sugiero que reemplace el evento de compilación posterior con una tarea de MS Build File Copy .
El que tiene los "Pings" me ayudó ... pero se puede explicar un poco mejor ...
Para mí, la solución fue cambiar:
copy $(TargetDir)$(TargetName).* $(SolutionDir)bin
a esto:
copy "$(TargetDir)$(TargetName).*" "$(SolutionDir)bin"
Espero que funcione para ti. :-)
Ella tenía un espacio en uno de los nombres de carpeta en su camino, y sin comillas alrededor.
Mi razón para el Código 1 era 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 fui y desactivé el atributo de solo lectura en el directorio y todos sus subdirectorios! Solo asegúrate de que sea un directorio que sea seguro hacerlo!
Obtenga el monitor de proceso de SysInternals configurado para ver el Lunaverse.DbVerse (en el campo Ruta) observe el resultado de la operación. Debería ser obvio a partir de ahí lo que salió mal
Ok, este es un problema con muchas soluciones, así que solo publico el mío para darle más pistas a la gente. Mi situación es verificar dos veces las carpetas en su camino y asegurarme de que todas ellas estén en su máquina. Por ejemplo: "$ (SolutionDir) / partBin / Bin / $ (ProjectName) .pdb", pero "Bin" no está en la carpeta partBin.
Para aquellos que usan el comando '' copiar '' en Build Events ( línea de comando de evento previo a la compilación y / y línea de comando de evento Post-build ) desde Project -> Properties : you '' copy '', los parámetros de comando deben verse como aquí: copy "source of files" "destination for files"
. Recuerde usar comillas (para evitar problemas con espacios en cadenas de direcciones).
Para aquellos que usan el comando ''copiar'' en Build Events (línea de comando de evento previo a la compilación y / y línea de comando de evento Post-build) desde Project -> Properties: debe existir la carpeta de destino
Para mí, tenía que asegurarme de que el programa al que hacía frente no estaba ejecutándose en ese momento. No hubo ningún error en la sintaxis. Espero que esto ayude a alguien.
Pude arreglar mi Código 1 ejecutando Visual Studio como administrador. Aparentemente no tenía acceso para ejecutar los comandos de shell sin Admin.
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 la codificación UTF-8.
Tuve este mismo problema y resultó que fue porque había cambiado el nombre del proyecto. Ingresé a las propiedades del proyecto y cambié el nombre de ensamblado y el espacio de nombre raíz al nombre del proyecto, ¡y funcionó muy bien después de eso!
Tuve que ejecutar VS como administrador para obtener mi copia posterior a la compilación en un sistema operativo protegido ".. / Common7 / IDE / PrivateAssemblies" para que funcione
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 de compilación posterior a usar un destino de copia.
Cambié esto:
<PropertyGroup>
<PostBuildEvent>copy $(ProjectDir)bin/BLAH.Common.xml $(ProjectDir)App_Data/BLAH.Common.xml</PostBuildEvent>
</PropertyGroup>
a esto:
<Target Name="AfterBuild">
<Copy SourceFiles="$(ProjectDir)bin/BLAH.Common.xml" DestinationFolder="$(ProjectDir)App_Data/" />
</Target>
y funciona bien ahora
El error específico que obtuve fue:
(PostBuildEvent target) ->
C:/Windows/Microsoft.NET/Framework/v4.0.30319/Microsoft.Common.targets(4291,5): error MSB3073: The command "copy <http://1.2.3.4/job/BLAHv2/ws/Api/bin/BLAH.Common.xml> <http://1.2.3.4/job/BLAHv2/ws/Api/App_Data/BLAH.Common.xml"> exited with code 1. [<http://1.2.3.4/job/BLAHv2/ws/Api/Api.csproj]>
He agregado esto para futuros visitantes ya que esta es una pregunta bastante activa.
ROBOCOPY sale con "códigos de éxito" que son menores de 8. Ver: http://support.microsoft.com/kb/954404
Esto significa que:
robocopy exit code 0 = no files copied
robocopy exit code 1 = files copied
When the result is 1, this becomes an error exit code in visual studio.
Así que resolví esto fácilmente añadiendo esto a la parte inferior del archivo por lotes
exit 0
Sugerir que maneje los errores de ROBOCOPY de esta manera
rem each robocopy statement and then underneath have the error check.
if %ERRORLEVEL% GEQ 8 goto failed
rem end of batch file
GOTO success
:failed
rem do not pause as it will pause msbuild.
exit 1
:success
exit 0
La confusión se establecerá cuando no se copien archivos = no hay error en VS. Luego, cuando hay cambios, los archivos se copian, los errores de VS pero todo lo que el desarrollador quería se hizo.
Consejo adicional: No use una pausa en el script ya que esto se convertiría en una pausa indefinida en la compilación VS. mientras desarrolla el script, use algo como timeout 10
. Notarás esto y lo comentarás en lugar de tener una compilación colgante.