Я хотел бы выполнить xdt:Transform
в конфигурации Debug
, но только если значение записи в app.debug.config
является определенным значением, скажем, true
, чтобы сделать его простым. Например:
App.config :
<?xml version="1.0" encoding="utf-8" ?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<appSettings>
<add key="Value.First" value="foo" />
<add key="Value.Second" value="foo" />
<add key="Value.Third" value="foo" />
</appSettings>
</configuration>
App.Debug.config :
<?xml version="1.0" encoding="utf-8" ?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<appSettings>
<!--Convenient flag to indicate if transform should happen-->
<add key="Perform.Transform.If.True" value="true" xdt:Transform="Insert" />
<!--Should only happen if the above is true-->
<add key="Value.First" value="bar" xdt:Transform="SetAttributes" xdt:Locator="Match(key)" />
<add key="Value.Second" value="bar" xdt:Transform="SetAttributes" xdt:Locator="Match(key)" />
<add key="Value.Third" value="bar" xdt:Transform="SetAttributes" xdt:Locator="Match(key)" />
</appSettings>
</configuration>
Iхотел бы, чтобы все записи Value.*
в app.config были преобразованы, только если ключ Perform.Transform.If.True
установлен в true
. Если это false
, ничего не должно произойти. Причина в том, что иногда во время тестирования мы хотели бы быстро включать и выключать вещи, которые управляются файлами конфигурации.
Я видел опции для Locator
для таких вещей, как Match, Conditional, XPath и т. Д. но, похоже, ни один из них не допускает условия из другой записи . Можно ли это сделать с помощью медленных преобразований / xdt?