2010-10-12 15 views
6

Al momento ho il seguente script come post costruire su un progetto:Messaggio costruire script di ritorno errorlevel 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 il versione x86 o x64 del gruppo per la cartella di output in base alla configurazione)

Questo script restituisce il livello di errore 255 e, poiché non ho idea di script batch, qualcuno potrebbe indicarmi l'errore?

risposta

5

Per quanto ne so, lo IF in file batch non supporta la sintassi C come ORing insieme a più espressioni.

Così come un primo tentativo, modificare queste prime righe del vostro scritto da:

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 

Da notare anche l'aggiunta " intorno al $(ConfigurationName).
Il resto dovrebbe funzionare correttamente.

9

In cmd.exe, Tipo net helpmsg 255:

Gli attributi estesi sono incoerente.

Non ho idea se questo è l'errore effettivo, ma è un modo pratico per decifrare i codici di errore Win32.

+1

Estremamente utile! Che consiglio meraviglioso; impari qualcosa di nuovo ogni giorno mentre navighi lo stack overflow. – nocarrier

Problemi correlati