2010-10-12 23 views
6

Actualmente tengo el siguiente script como post construir sobre un proyecto de regresar:Mensaje Creación de un script nivel de error 255

if $(ConfigurationName) == "Debug (x64)" || $(ConfigurationName) == "Release (x64)" (goto :x64) 
if $(ConfigurationName) == "Debug" || $(ConfigurationName) == "Release" (goto :x86) 

:x64 
copy "$(SolutionDir)References\x64\System.Data.SQLite.dll" "$(TargetDir)System.Data.SQLite.dll" 
goto :default 

:x86 
copy "$(SolutionDir)References\System.Data.SQLite.dll" "$(TargetDir)System.Data.SQLite.dll" 
goto :default 

:default 
copy "$(SolutionDir)References\System.Data.SQLite.Linq.dll" "$(TargetDir)System.Data.SQLite.Linq.dll" 

(copia la versión x86 o x64 de la asamblea a la carpeta de salida según la configuración)

Este script devuelve el nivel de error 255, y como no tengo idea de las secuencias de comandos por lotes, ¿podría alguien señalarme el error?

Respuesta

5

Por lo que sé, el IF en archivos de proceso por lotes no admite C como la sintaxis de OR juntas varias expresiones.

Así como un primer intento, cambiar estas primeras líneas de su script de:

if $(ConfigurationName) == "Debug (x64)" || $(ConfigurationName) == "Release (x64)" (goto :x64) 
if $(ConfigurationName) == "Debug" || $(ConfigurationName) == "Release" (goto :x86) 

a:

if "$(ConfigurationName)"=="Debug (x64)" goto :x64 
if "$(ConfigurationName)"=="Release (x64)" goto :x64 
if "$(ConfigurationName)"=="Debug" goto :x86 
if "$(ConfigurationName)"=="Release" goto :x86 

También tenga en cuenta el " añadido alrededor de la $(ConfigurationName).
El resto debería funcionar bien.

9

En cmd.exe, tipo net helpmsg 255:

los atributos extendidos son inconsistente.

No tengo idea si ese es el error real, pero es una manera práctica de descifrar los códigos de error Win32.

+1

¡Extremadamente útil! Qué maravilloso consejo; aprendes algo nuevo todos los días mientras surfeas desbordamiento de pila. – nocarrier

Cuestiones relacionadas