Преобразуйте записи app.config, только если флаг в app.debug.config имеет значение true - PullRequest
1 голос
/ 22 октября 2019

Я хотел бы выполнить 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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...