Paso 1: Definir una propiedad en la secuencia de comandos de NAnt para rastrear el entorno en el que está la construcción de (local, prueba, producción, etc.).
<property name="environment" value="local" />
Paso 2: Si usted no tiene ya un objetivo de configuración o inicialización que todos los objetivos depende, a continuación, crear un destino de configuración y asegúrese de que sus otros objetivos dependen de ello.
<target name="config">
<!-- configuration logic goes here -->
</target>
<target name="buildmyproject" depends="config">
<!-- this target builds your project, but runs the config target first -->
</target>
Paso 3: Modificar la configuración de destino para tirar en un archivo de propiedades apropiadas sobre la base de la propiedad de entorno.
<target name="config">
<property name="configFile" value="${environment}.config.xml" />
<if test="${file::exists(configFile)}">
<echo message="Loading ${configFile}..." />
<include buildfile="${configFile}" />
</if>
<if test="${not file::exists(configFile) and environment != 'local'}">
<fail message="Configuration file '${configFile}' could not be found." />
</if>
</target>
Nota, me gusta para permitir que los miembros del equipo para definir sus propios archivos local.config.xml que no se comprometan a control de código fuente. Esto proporciona un buen lugar para almacenar cadenas de conexión locales u otras configuraciones de entorno local.
Paso 4: Establecer la propiedad de entorno cuando se invoca de NAnt, por ejemplo:
- Nant -D: entorno dev =
- Nant -D: entorno de prueba =
- Nant -D: entorno = producción
Su línea falla para mí con el mensaje: "Tarea no permitida en los objetivos. Debe estar al nivel del proyecto". –
vakman