Подтвердить что ты не робот

Как применить преобразования конфигурации во внешний файл конфигурации

Я не могу найти пример моего вопроса в Интернете и задавался вопросом, знает ли кто-нибудь решение. В принципе, если в нашем web.config указывается на другой файл, например:

<configuration>
  <configSections />
  <appSettings file="AppSettings.config">
</configuration>

то как мы применяем преобразования к этому внешнему файлу?

В принципе, я хочу создать AppSettings.config, AppSettings.Debug.config, AppSettings.Release.config и провести над ним трансформацию... Возможно ли это?

Спасибо заранее,

Серхио

4b9b3361

Ответ 1

Существует несколько обходных решений:

Обходной путь 1

  • Напишите AppSettings.Debug.config, AppSettings.Release.config с полными значениями (не с атрибутами преобразования)
  • В вашем web.config, используя преобразование, замените соответствующим файлом:

web.debug.config

<appSettings file="AppSettings.debug.config" 
             xdt:Transform="SetAttributes" xdt:Locator="Match(file)"/>

web.release.config

<appSettings file="AppSettings.release.config" 
             xdt:Transform="SetAttributes" xdt:Locator="Match(file)"/>

Его менее идеальный, своего рода побеждает цель преобразований, но может быть уместен на основе одной ситуации, чем использовать что-то вроде SlowCheetah.

Обходной путь 2

Используйте TransformXml задачу сборки, чтобы преобразовать ваши файлы во время сборки как указано здесь и здесь

Ответ 2

Там проект плагина Visual Studio под названием Slow Cheetah, который принимает идею преобразований и позволяет применять его к файлам, отличным от web.config, у меня нет использовал его, но я думаю, что он сделает то, что вы хотите сделать. Скотт Гензельман сделал blog на нем.