Шаг 1 : определите свойство в вашем сценарии NAnt, чтобы отслеживать среду, для которой вы строите (локальную, тестовую, производственную и т. Д.).
<property name="environment" value="local" />
Шаг 2 : Если у вас еще нет цели конфигурации или инициализации, от которой зависят все цели, то создайте цель конфигурации и убедитесь, что другие ваши цели зависят от нее.
<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>
Шаг 3 : обновите целевой объект конфигурации, чтобы получить соответствующий файл свойств на основе свойства среды.
<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>
Обратите внимание, я хотел бы разрешить членам команды определять свои собственные файлы local.config.xml, которые не попадают в систему контроля версий. Это удобное место для хранения локальных строк подключения или других настроек локальной среды.
Шаг 4 : установить свойство среды при вызове NAnt, например ::
- nant -D: environment = dev
- nant -D: среда = тест
- nant -D: окружающая среда = производство