Переменные преобразования Web.config

Можно ли включать переменные в файл преобразования web.config? Для каждой среды у меня в основном одно и то же преобразование, только с разными значениями. Например, для среды разработки у меня было бы...

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
    <appSettings>
        <add key="serverName" value="server1" xdt:Transform="Replace" xdt:Locator="Match(key)" />
        <add key="serverPath" value="\\server1" xdt:Transform="Replace" xdt:Locator="Match(key)" />
    </appSettings>
</configuration>

А для среды QA я бы...

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
    <appSettings>
        <add key="serverName" value="server2" xdt:Transform="Replace" xdt:Locator="Match(key)" />
        <add key="serverPath" value="\\server2" xdt:Transform="Replace" xdt:Locator="Match(key)" />
    </appSettings>
</configuration>

Единственная разница заключается в значении server1 и server2. Это простой пример, и на самом деле я использую значение сервера несколько раз в преобразовании. Есть ли способ объявить переменную в файле преобразования для многократного использования? Что-то типа...

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
    <property name="server" value="server2" />
    <appSettings>
        <add key="serverName" value="${server}" xdt:Transform="Replace" xdt:Locator="Match(key)" />
        <add key="serverPath" value="\\${server}" xdt:Transform="Replace" xdt:Locator="Match(key)" />
    </appSettings>
</configuration>

person Rob Gibbens    schedule 07.03.2011    source источник


Ответы (2)


Я делал что-то подобное несколько месяцев назад. Пример находится по адресу http://www.geoffhudik.com/tech/2010/10/19/webconfig-automation-with-t4-and-a-macro.html

person Geoffrey Hudik    schedule 10.03.2011
comment
Это ответ только по ссылке на ваш собственный блог. Пожалуйста, повторно опубликуйте соответствующий материал здесь, чтобы в случае, если ваш блог когда-либо отключится, ваш ответ остался полезным для других зрителей. - person MattD; 27.10.2015

это не поддерживается преобразованиями web.config. Вы можете обратить внимание на создание шаблона T4, можно использовать для создания преобразований web.config. Итак, идея в том, что вы помещаете переменные в шаблон T4, и он выдает файл web.debug.config/web.release.config/etc. Затем, когда вы упаковываете / публикуете, он просто подбирает файл преобразования, который был создан в качестве вывода T4.

Я был бы не против помочь вам с такой вещью, если бы вы могли привести несколько конкретных примеров того, как это полезно.

person Sayed Ibrahim Hashimi    schedule 09.03.2011