Статьи:







Рекламка:

Предупреждение

Данный материал не может распространяться без письменного разрешения его правообладателя, за исключением публикации на Веб-страницах, при условии целостности содержания материала и указания ссылки на исходную страницу, с которой была скопирована эта статья.

xConfiguratorTask




xConfiguratorTask



max404.NET (, )
Сентябрь 2006
Версия 0.1



xConfiguratorTask это задание для MSBuild, позволяющее трансформировать конфигурационные файлы проекта (.cfg) во время выполнения сборки.
Задание имеет 3 параметра:
  • входной файл - конфигурация, которую мы и собираемся изменять.

  • трансформирующий файл - конфигурация, служащая шаблоном для трансформации

  • тип трансформации - определяет, какое именно действие будет выполняться. Необязательный параметр, по умолчанию "Replace"


Трансформация не затрагивает мета-тэгов конфигурации, за исключением добавления мета-тэга "transformed-by-xConfiguratorTask", в который записывается время последней обработки.


Типы трансформации


  • Replace: Заменяет (создавая, если нужно) значения узлов входной конфигурации значениями, заданными в шаблоне. Если Описание узла начинается с "@ignore", то этот узел не участвует в замене, но дочерние узлы этот параметр не затрагивает.

  • Cut: Вырезает узлы, присутствующие в шаблоне из входной конфигурации. Если Описание узла начинается с "@ignore", то этот узел не вырезается, дочерние узлы этот параметр также не затрагивает.

  • Restrict: Ограничивает узлы входной конфигурации только теми, что присутствуют в шаблоне. Если Описание узла начинается с "@ignore", то этот узел не трансформируется, дочерние узлы при этом не проверяются.



Использование задания


Для применения задания необходимо прописать его в файле проекта (*.csproj), например
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <UsingTask 

TaskName="Custom.Tasks.xConfiguratorTask"
AssemblyFile="c:\ProgramFiles\Max404\xConfiguratorTask\xConfiguratorTask.dll" />
... <Target Name="AfterBuild"> <Copy SourceFiles="$(MSBuildProjectDirectory)\ClientCore.exe.cfg" DestinationFiles="$(OutputPath)ClientCore.exe.cfg" /> <xConfiguratorTask
TransformType="Replace"
InputFile="$(OutputPath)ClientCore.exe.cfg"
TransformFile="$(MSBuildProjectDirectory)\ClientCore.exe.Replace.Release.cfg" />

<xConfiguratorTask
TransformType="Cut"
InputFile="$(OutputPath)ClientCore.exe.cfg"
TransformFile="$(MSBuildProjectDirectory)\ClientCore.exe.Cut.Release.cfg" />

<xConfiguratorTask
TransformType="Restrict"
InputFile="$(OutputPath)ClientCore.exe.cfg"
TransformFile="$(MSBuildProjectDirectory)\ClientCore.exe.Restrict.Release.cfg" />
</Target> </Project>


UsingTask - необходимо для указания MSBuild-у откуда брать задание.
Copy - копируем файл ClientCore.exe.cfg из проекта в выходной каталог (где будет лежать сборка)
первый xConfiguratorTask - трансформирует файл ClientCore.exe.cfg в выходном каталоге методом Replace используя шаблон ClientCore.exe.Replace.Release.cfg из каталога проекта
следующие xConfiguratorTask продолжают трансформацию файла ClientCore.exe.cfg в выходном каталоге
Идентификатор статьи: 57
Дата занесения/обновления: 10.09.2006 11:57

Комментарии к статье

Ваш комментарий будет первым!
Имя:
Текст:
  mml?
Пожалуйста, подтвердите, что вы человек, введя значение выражения 89+187=