区别配置 debug 和release 的Webconfig

每次开发时的配置和实际生产中的配置都是不一样,之前每次都是发布后修改Webconfig。次数一多就嫌麻烦了,所以就想研究一下Web.Debug.config和Web.Release.config。
但是按照网络上的文章,自己配置了点appSettings,运行时怎么也无法生效。几经查询找不到问题,就在我打算放弃之时,看到了一篇文章,Web.Debug.config和Web.Release.config设置无效的解决办法
根据上面的经历,我找到了xx.Web.csproj。在Webconfig 目录下
区别配置 debug 和release 的Webconfig_第1张图片
打开后拉到文章下方,取消关于 BeforeBuild、AfterBuild的注释,再添加:

<TransformXml Source="Web.config" Transform="Web.$(Configuration).config" Destination="Web.config" />

区别配置 debug 和release 的Webconfig_第2张图片

之后debug以及release的修改就会生效了。
另外建议不要使用 xdt:Transform=“Insert”。这种方式会使得每次运行时都添加一次appSettings。
我的处理方式是在Webconfig里添加一行 占位。

<add key="Developer" value="XXXX"/>

而后在debug.config和release.config里添加

<appSettings>
    <add key="Developer" value="XXXX"/> xdt:Transform="Replace" xdt:Locator="Match(key)"/>
  </appSettings>

使用:xdt:Transform=“Replace” xdt:Locator=“Match(key)” 来进行替换,而不是新增。
运行后会自动根据环境进行不同的配置。
关于Transform 的配置,可参考:
关于Web.config的debug和release.config文件
ASP.NET 多环境下配置文件web.config的灵活配置

你可能感兴趣的:(C#,c#)