覆盖 Web.Debug.config 文件中另一个 dll 中的网络服务地址

Override webservice addresses which is onanother dll at Web.Debug.config file

我致力于多层解决方案,即 Web 表单应用程序。所有的 Web 服务都在一个名为 WS 的项目下。有一百多个。我从 Web 窗体项目中调用 WS。

我想在Debug配置下使用测试服务,在Release配置下使用live系统

WS库项目的

app.config是

<applicationSettings>
  <WS.Properties.Settings>
    <setting name="settingName"
        serializeAs="String">
      <value>http://test.x.com/a.asmx</value>
    </setting>
  </WS.Properties.Settings>
</applicationSettings>

所以我添加了web.Config这些行

<configSections>
  <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">

    ......

    <section name="WS.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </sectionGroup>
</configSections>



<applicationSettings>
  <WS.Properties.Settings>
    <setting name="settingName"
        serializeAs="String">
      <value>http://live.x.com/a.asmx</value>
    </setting>
  </WS.Properties.Settings>
</applicationSettings>

然后就可以启动直播服务了。

在web.debug.config我尝试了一些改造;但是程序仍然与 web.debug 中的设置相关联(启动实时服务)。

<applicationSettings>
  <WS.Properties.Settings xdt:Transform="Replace" xdt:Locator="Match(name)">
    <setting name="settingName"
      serializeAs="String">
      <value>http://test.x.com/a.asmx</value>
    </setting>
 </WS.Properties.Settings>
</applicationSettings>

我应该如何更改 web.debug.config 文件以便在调试配置中连接测试服务。

谢谢,

此选择仅影响发布而不影响调试部分。我已经找到了,但我没有时间分享来回答。

使用像

这样的预处理器可能是更好的解决方案
#if DEBUG
....
#endif