如何转换此web.config节

本文关键字:web config 转换 何转换 | 更新日期: 2023-09-27 18:06:23

我的邮件有以下配置:

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

这是我的。发布版本:

<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"/>

所以它没有显示在我的。释放吗?

此外,我想完全删除其他名称空间,如System.Diagnostics。这样做的语法是什么?

如何转换此web.config节

对于specifiedPickupDirectory元素,这应该有效:

<specifiedPickupDirectory xdt:Transform="RemoveAll" />

用于系统诊断:

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

<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>

这将用你的替换整个标签。。希望这就是你想要的。。

这样做的好处是,您最终不会用不必要的remove命令污染您的transform-config,比如这里所说的一些答案。。

考虑有多个子标签的情况。。

与其尝试从发布版本中删除配置,不如将其从基本版本中删除并添加到.Debug版本中?这可能更简单。但是,如果你想删除它,我认为你可以使用<specifiedPickupDirectory xdt:Transform="Remove"/>或类似的东西。

@katit,您应该为dev和release维护两个不同的配置。

您的webconfig应该是动态的,并采用如下所示的配置

/qa/yoursettings.config

/release/yoursettings.config

再来一个样品

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

当您转到qa或发布时,相应地切换web.config。

这样它会更干净。