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

问题描述:

试图为开发者与产品获取简单的<appSettings>Web.config和Web.Release.config中的appSettings

Web.config

<appSettings> 
    <add key="hello" value="debug" /> 
</appSettings> 

Web.Release.config

<appSettings> 
    <add key="hello" value="prod" /> 
</appSettings> 

(均下<configuration>

当我在调试模式下,并运行我的MVC网站,我可以做我的HomeController.Index中有一个简单的return Content(WebConfigurationManager.AppSettings["hello"]);,它返回dev。如果我将模式切换为Release,它仍会返回dev。我想模拟产品模式,而不需要实际发布到产品。

+0

没有好办法做到这一点,有一个非常强烈的论点,你真的不应该这样做。最终,IIS只会查看名为'web.config'的文件,因此您只能使用该文件。您可以预览转换后的文件并将其复制/粘贴,当然,在您测试完成后记得要将其复原。 – DavidG

在构建特定的Web.config文件中,您必须告诉它如何转换基础.config文件。所以,做你问什么,你Web.Release.config文件应该是这样的:

<appSettings> 
    <add key="hello" value="prod" xdt:Transform="SetAttributes" xdt:Locator="Match(key)" /> 
</appSettings> 

在上面的代码中SetAttributes改造将改变包含值hellokey属性相匹配的任何元素的属性。

+0

这应该是被接受的答案。 – Nikkelmann