Исходный код вики Трансформация Web.config

Версия 6.1 от Alexandr Fokin на 2020/03/26 19:56

Скрыть последних авторов
Alexandr Fokin 1.1 1
2 Трансформация web.config отличается от app.config:
3
4 Если мы рассмотрим обычное приложение, то при запуске в VisualStudio оно собирается в папаку \<ProjectDir>\bin\<conf> и туда помещается трансформированный конфиг.
5 Например мы берем исходный конфиг \<ProjectDir>\app.config и накладываем на него app.<conf>.config результирующий файл помещается в \<ProjectDir>\bin\<conf>
Alexandr Fokin 5.1 6 __\<ProjectDir>\app.config__ + __app.<conf>.config__ => __\<ProjectDir>\bin\<conf>\*.config__
Alexandr Fokin 1.1 7
Alexandr Fokin 2.1 8
Alexandr Fokin 1.1 9 В случае же asp.net приложения при запуске проекта в VisualStudio (IIS express) в качестве конфига будет использован файл \web.config. Отсюда следует 2 факта
10 1) Мы не можем размещать какую либу конфигукрацию в web.config, если планируем проводить трансформацию. (Для основы следует использовать что то вроде web.base.config)
11 2) Результат транформации должен помещаться не только в папке конечного билда \<ProjectDir>\bin\, но и в папке самого проека \<ProjectDir>\web.config. Иначе при запуске в VisualStudio мы не получим нужную трансформацию.
Alexandr Fokin 5.1 12 __\<ProjectDir>\web.base.config__ + __web.<conf>.config__ => __\<ProjectDir>\web.config__
13 __\<ProjectDir>\web.base.config__ + __web.<conf>.config__ => __\<ProjectDir>\bin\*.config__
Alexandr Fokin 1.1 14
Alexandr Fokin 2.1 15
Alexandr Fokin 1.1 16 Плагин SlowCheetah не учитывает данный аспект работы asp.net проекта, поэтому необходимо вручную внести изменения в .csproj файл проекта.
17 Это же касается и других .config файлов проекта (log4net.config)
18
Alexandr Fokin 6.1 19 {{code language="csproj"}}
20 <Target Name="BeforeBuild">
21 <TransformXml Source="Web.base.config" Destination="Web.config" Transform="Web.$(Configuration).config" />
22 </Target>
23 {{/code}}
24
25
26
27 Ссылки:
28 https://github.com/microsoft/slow-cheetah/issues/55
29
30