У меня есть преобразование конфигурации, которое среди других действий вставляет smtpClient
узел в MyAppSettings
:
<?xml version="1.0" encoding="utf-8" ?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<MyAppSettings>
<smtpClient xdt:Transform="Insert">
<!-- other tags -->
</smtpClient>
</MyAppSettings>
</configuration>
Моя проблема заключается в том, что он будет применен ко многим Web.config
файлам из разных проектов.У некоторых из них есть MyAppSettings
узел:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!-- other sections -->
<MyAppSettings/>
</configuration>
, а у некоторых нет:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!-- other sections -->
</configuration>
Когда я запускаю преобразование для любой конфигурации из второй группы, я получаю:
Transformation.xml (4,6): ошибка: ни один элемент в исходном документе не соответствует '/ configuration / MyAppSettings / smtpClint'
Я пытался исправить эту ошибкус Condition
:
<smtpClient
xdt:Locator="Condition(/configuration/MyAppSettings)"
xdt:Transform="InsertAfter(/configuration/MyAppSettings)">
</smtpClient>
но это дало мне ту же ошибку (и я не думаю, что InsertAfter
вставит в правильное место).
Как я могу сделать эту вставкуПравило необязательно?Я имею в виду, что если нет узла "/ configuration / MyAppSettings", просто пропустите это правило и примените другие преобразования.