Как применить два разных преобразования к одному элементу web.config? - PullRequest
12 голосов
/ 20 января 2012

Из моего проекта развертывания VS2010 я хотел бы применить два разных преобразования к двум различным атрибутам одного элемента в моем файле web.config. Рассмотрим следующий фрагмент web.config:

<exampleElement attr1="false" attr2="false" attr3="true" attr4="~/" attr5="false">
  <supportedLanguages>
    <!-- Some more elements here -->
  </supportedLanguages>
</exampleElement>

Теперь, как я могу изменить атрибут attr1 и удалить атрибут attr5 в преобразованном файле web.config? Я знаю, как выполнить отдельные преобразования:

<exampleElement attr1="true" xdt:Transform="SetAttributes(attr1)"></exampleElement>

и

<exampleElement xdt:Transform="RemoveAttributes(attr5)"></exampleElement>

Но я не знаю, как объединить эти преобразования. Кто-нибудь?

EDIT:

Пока не могу ответить на свой вопрос, но решение похоже на следующее:

Кажется, что можно повторить один и тот же элемент с разными преобразованиями, например так:

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
    <exampleElement attr1="true" xdt:Transform="SetAttributes(attr1)"></exampleElement>
    <exampleElement xdt:Transform="RemoveAttributes(attr5)"></exampleElement>
</configuration>

Как уже говорилось, это работает, но я не уверен, является ли это предполагаемым использованием синтаксиса преобразования web.config.

Ответы [ 2 ]

17 голосов
/ 21 января 2012

Как подтвердил Ник Nieslanik, это делается путем повторения одного и того же элемента с различными преобразованиями, например:

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
    <exampleElement attr1="true" xdt:Transform="SetAttributes(attr1)"></exampleElement>
    <exampleElement xdt:Transform="RemoveAttributes(attr5)"></exampleElement>
</configuration>
0 голосов
/ 21 января 2012

Я использую XmlPreprocess tool для преобразования и манипуляции с файлами конфигурации.Он использует один файл сопоставления для нескольких сред.Вы можете редактировать файл сопоставления в Excel.Он очень прост в использовании.Вы можете обновить файлы конфигурации с помощью xmlpreprocess и использовать конфигурацию (debug, dev, prod, ...) в качестве параметра для другой настройки ...

...