Una de las tareas típicas que hacemos cuando trabajamos con Cloud Services dentro de Windows Azure es hacer uso de las tareas de arranque (Startup tasks) para instalar o configurar todo aquello que necesitamos en la máquina que crea por nosotros el servicio, para que nuestra aplicación pueda funcionan sin problemas.
<Startup> <Task commandLine="startup.cmd" executionContext="elevated" taskType="simple"></Task> </Startup>
Pero claro, es más que posible, que queremos que estas tareas no se lances cuando estemos probando la aplicación en el entorno local de simulación, sólo cuando despleguemos la aplicación en Windows Azure. Bueno, pues la verdad que es bastante sencillo controlar si se está en el entorno local, aquí os dejo cómo sería.
En el fichero de definición del servicio, haremos la siguiente modificación:
<Task executionContext="elevated" commandLine="startupstartup.cmd"> <Environment> <Variable name="EMULATED"> <RoleInstanceValue xpath="/RoleEnvironment/Deployment/@emulated" /> </Variable> </Environment> </Task>
y dentro de fichero cmd añadiremos una comprobación para que si estamos en el entorno de emulación no ejecutemos el script:
if "%EMULATED%"=="true" goto :EOF
Así, tan sencillo.