Web.config和Web.Release.config中的appSettings

Ian*_*vis 7 c# appsettings asp.net-mvc-3

试图简化<appSettings>dev与prod.

我的Web.config:

<appSettings>
  <add key="hello" value="debug" />
</appSettings>
Run Code Online (Sandbox Code Playgroud)

我的Web.Release.config:

<appSettings>
  <add key="hello" value="prod" />
</appSettings>
Run Code Online (Sandbox Code Playgroud)

(均在<configuration>)

当我在调试模式下运行并运行我的MVC站点时,我可以return Content(WebConfigurationManager.AppSettings["hello"]);在我的内容中执行简单操作HomeController.Index并返回dev.如果我将模式切换到Release它仍然返回dev.我想模拟prod模式而不实际发布到prod.

Nik*_*sen 17

在特定于构建的Web.config文件中,您必须告诉它如何转换基本.config文件.所以要做你要求的,你的Web.Release.config文件应该是这样的:

<appSettings>
  <add key="hello" value="prod" xdt:Transform="SetAttributes" xdt:Locator="Match(key)" />
</appSettings>
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,SetAttributes转换将更改与key包含该值的属性匹配的任何元素的属性hello.