simple riot que framework post-build-event

post build event - riot - VS2010: ¿Podemos tener múltiples si en un evento posterior a la compilación?



simple js framework (2)

Puede tener tantas declaraciones condicionales como desee, solo sepárelas por una nueva línea y pierda otra cosa

Así que cambia

if "Debug"=="$(ConfigurationName)" ( goto :nocopy ) else if...

A

if "Debug" == "$(ConfigurationName)" (goto :nocopy) if "Release" ==" $(ConfigurationName)" ( del "$(TargetPath).config" copy "$(ProjectDir)/App.Release.config" "$(TargetPath).config" ) if ...

y se compilará y funcionará bien

Nota: los comandos se interpretarán línea por línea de la misma manera que un archivo por lotes de DOS, por lo que es importante colocar el paréntesis de apertura "(" en la misma línea que la instrucción if y el paréntesis de cierre ")" en la misma línea que el último comando en el bloque.

¿Podemos tener algo como esto?

if "Debug"=="$(ConfigurationName)" ( goto :nocopy ) else if "Release"=="$(ConfigurationName)" ( del "$(TargetPath).config" copy "$(ProjectDir)/App.Release.config" "$(TargetPath).config" ) else if "ReleaseBeta"=="$(ConfigurationName)" ( del "$(TargetPath).config" copy "$(ProjectDir)/App.ReleaseBeta.config" "$(TargetPath).config" ) else if "ReleaseProduction"=="$(ConfigurationName)" ( del "$(TargetPath).config" copy "$(ProjectDir)/App.ReleaseProduction.config" "$(TargetPath).config" ) :nocopy

Lo he intentado pero no funciona. El código de error es 255.


Si su lógica posterior a la compilación se está complicando, sugeriría moverla a un archivo externo. Por ejemplo, el siguiente evento posterior a la construcción:

CALL "$(ProjectDir)PostBuild.cmd" $(ConfigurationName)

ejecuta un archivo por lotes PostBuild.cmd en el directorio del proyecto, pasando $ (ConfigurationName) como parámetro. También puede pasar otros parámetros, como $ (TargetPath).

Luego, puede implementar lo que quiera, incluidas varias declaraciones if, y lo más importante, depurarlo sin ejecutar una compilación de Visual Studio.