Трансформация конфигурации app.config для сборки

В статье "Убираем зависимость приложения от Entity Framework" была упомянута необходимость создания файла конфигурации для сборки (assembly). Как правило, для отладки или публикации проекта, требуется изменять значения параметров в зависимости от настройки компиляции и цели публикации.

В случае с build-сервером есть возможность дописать соответствующие команды в build-скрипт. Но что делать при локальной компиляции или публикации с компьютера разработчика? "Из коробки" Visual Studio не поддерживает трансформации для App.config.

Для решения данной проблемы воспользуемся инструментом SlowCheetah, который состоит из:

  • библиотеки SlowCheetah, доступная как пакет для NuGet;
  • расширения для Visual Studio: SlowCheetah - XML Transforms. 

Установка дополнения не обязательная. Оно никак не влияет на процесс компиляции и трансформации. Его задача – просто автоматизировать настройку проекта. Кроме того оно предоставляет возможность заранее увидеть результат преобразований в режиме предварительного просмотра. Все это доступно через контекстное меню файлов конфигураций и трансформаций в Solution Explorer (пункты Add Tramsform и Preview Transform).

Модификация проекта сборки

В проекте сборки (например для работы с базой данных) создадим файл App.config. Важно помнить, что после трансформации этот файл будет преобразован в [ProjectName].dll.config (например SomeProject.DataAccess.dll.config). Именно это имя необходимо использовать, если в приложение самостоятельно загружает данные из конфигурации.

В зависимости от того, установлено ли расширение, есть два варианта дальнейших действий:

  1. Создадим все необходимое (библиотеку, файлы трансформации) с помощью расширения SlowCheetah. Для этого нужно выбрать пункт Add Transform в контекстном меню файла App.config.
  2. В проект сборки самостоятельно добавим файлы трансформаций (App.Debug.config, App.Release.config) и установим пакет SlowCheetah с помощью NuGet:
    PM> Install-Package SlowCheetah -ProjectName [AssemblyProjectName]

Изменения в отлаживаемом и/или публикуемом проекте

Так же нужно подключить пакет SlowCheetah и в проект запускаемого (публикуемого) приложения:

PM> Install-Package SlowCheetah -ProjectName [AppProjectName]

Теперь можно задать параметры конфигурации и необходимые для них трансформации. Настройка завершена.

Добавить комментарий