Как преобразовать этот раздел web.config? - PullRequest
19 голосов
/ 23 августа 2011

У меня есть следующий конфиг для моей почты:

<system.net>
    <mailSettings>
      <smtp from="foo@bar.com" deliveryMethod="SpecifiedPickupDirectory">
        <specifiedPickupDirectory pickupDirectoryLocation="C:/test"/>
        <network host="localhost" userName="" password=""/>
      </smtp>
    </mailSettings>
  </system.net>

Это моя версия .Release:

<system.net>
    <mailSettings>
      <smtp from="foo@bar.com" xdt:Transform="RemoveAttributes(deliveryMethod)">
        <network xdt:Transform="Replace" host="192.168.1.9" userName="" password="" />
      </smtp>
    </mailSettings>
  </system.net>

Как мне удалить

<specifiedPickupDirectory pickupDirectoryLocation="C:/test"/>

такон не отображается в моем .Release вообще?

Кроме того, я хотел бы полностью удалить другие пространства имен, такие как System.Diagnostics.Каков синтаксис для этого?

Ответы [ 4 ]

24 голосов
/ 23 августа 2011

Для элемента specifiedPickupDirectory это должно работать:

<specifiedPickupDirectory xdt:Transform="RemoveAll" />.

Для системы. Диагностика:

<system.diagnostics xdt:Transform="RemoveAll"></system.diagnostics>

16 голосов
/ 24 августа 2011
<system.net>
    <mailSettings>
      <smtp from="foo@bar.com" xdt:Transform="Replace">
        <network xdt:Transform="Replace" host="192.168.1.9" userName="" password="" />
      </smtp>
    </mailSettings>
  </system.net>

Это заменит весь тэг на ваш .. надеюсь, это то, что вы ищете ..

хорошо, что вы не загрязняете свою конфигурацию преобразования ненужными командами удаления, как некоторые из ответов, приведенных здесь ..

рассмотрим случай, когда у вас есть несколько дочерних тегов.

1 голос
/ 23 августа 2011

Вместо того, чтобы пытаться удалить конфигурацию из вашей версии выпуска, вы можете взять ее из базовой версии и просто добавить в версию .Debug?Это может быть проще.Однако, если вы хотите удалить его, я думаю, вы можете использовать <specifiedPickupDirectory xdt:Transform="Remove"/> или что-то подобное.

0 голосов
/ 23 августа 2011

@ katit, вы должны поддерживать два разных конфига для dev и release.

ваш webconfig должен быть динамическим и принимать конфиги, как показано ниже

/qa/yoursettings.config


/release/yoursettings.config

еще один пример

<connectionStrings configSource="config\qa\connectionStrings.config"/>

когда вы перейдете к qa или отпустите, переключите ваш web.config соответственно.

таким образом, это будет намного чище.

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