Utilizzo Visual Studio 2010 su Windows 7 a 64 bit.
ho trovato una soluzione che è meglio per i miei gusti, io sono il concatenamento comandi insieme a && ^
, ad esempio, la modifica di mio file xml .vcxproj in questo modo:
<PreBuildEvent>
<Command>echo "hello 1" &&^
echo "hello 2" &&^
echo "hello 3"</Command>
<Message>Performaing pre-build actions ...</Message>
</PreBuildEvent>
ho incatenato tre comandi insieme. Il numero "& &" indica alla shell di interrompere l'esecuzione se il comando precedente viene eliminato.
Nota, nel file .xml, non è possibile utilizzare &&
direttamente, quindi '& amp; & amp; ' È necessario utilizzare. Notare anche l'uso del carattere ^
, questo è il carattere di continuazione della linea della shell cmd (come il carattere \
di BASH).
Ogni nuovo comando deve iniziare all'inizio della riga. Usando questo approccio, si può incatenare quanti comandi vuoi, ma se uno fallisce, il resto della catena non verrà eseguito.
Ecco il mio caso d'uso attuale, sto eseguendo alcuni controlli ambientali con uno script Python, seguita copiando file di debug del mio header precompilato nella directory di un altro sotto-progetto:
<PreBuildEvent>
<Command>C:\Python27\python.exe "$(SolutionDir)check_path.py" 32 &&^
copy "$(SolutionDir)h1ksim_lib\vc$(PlatformToolsetVersion).pdb" "$(IntDir)" /-Y > nul</Command>
<Message>Performaing pre-build actions ...</Message>
</PreBuildEvent>
La > nul
utilizzo sul comando di copia impedisce qualsiasi uscita mostrando nella finestra di generazione, così i miei compagni di squadra non avranno fuori di testa quando dice 0 file(s) copied.
riferimento alla condivisione intestazioni pre-compilati tra i sotto-progetti è qui:
Sharing precompiled headers between projects in Visual Studio
In VS2008 non è stato possibile inserire più file CMD su righe separate. VS ha chiamato solo il primo script su build. Ho aggiunto CALL davanti a ogni riga e poi tutto ha funzionato. –
Perché questi comandi 'call' chiedi? Vedere [qui] (https://msdn.microsoft.com/en-us/library/ms165412.aspx). – Pascal