Web.config Преобразование переменных - PullRequest
7 голосов
/ 08 марта 2011

Возможно ли включить переменные в файл преобразования 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>

Ответы [ 2 ]

4 голосов
/ 09 марта 2011

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

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

0 голосов
/ 10 марта 2011

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

...