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
。我想模拟产品模式,而不需要实际发布到产品。
答
在构建特定的Web.config文件中,您必须告诉它如何转换基础.config文件。所以,做你问什么,你Web.Release.config
文件应该是这样的:
<appSettings>
<add key="hello" value="prod" xdt:Transform="SetAttributes" xdt:Locator="Match(key)" />
</appSettings>
在上面的代码中SetAttributes
改造将改变包含值hello
的key
属性相匹配的任何元素的属性。
+0
这应该是被接受的答案。 – Nikkelmann
没有好办法做到这一点,有一个非常强烈的论点,你真的不应该这样做。最终,IIS只会查看名为'web.config'的文件,因此您只能使用该文件。您可以预览转换后的文件并将其复制/粘贴,当然,在您测试完成后记得要将其复原。 – DavidG