我可以将设置存储在ASP.NET MVC中的settings.config文件中吗?

时间:2013-06-24 00:17:40

标签: c# asp.net asp.net-mvc

我正在使用.NET MVC

我想要存储在配置文件(.config等)中的大约10个属性,与环境/部署内容相关,+其他用于快速更改而无需执行dLL部署的内容。

我正在使用Team foundation服务进行CI构建等,而我的web.config显然是在版本控制下。

我想做的是有一个settings.config(不在版本控制中)文件存储这些,我能做到吗?

还是需要在web.config中?

1 个答案:

答案 0 :(得分:6)

要回答标题问题,是的,您可以将设置存储在单独的配置文件中,为此您需要定义configSource元素的appSettings属性

E.g。

<appSettings configSource="settings.config" />

并在settings.config文件中

<?xml version="1.0" encoding="UTF-8"?>
<appSettings>
    <add key="settingKey" value="environmentValue" />
</appSettings>

但是,为了特定于环境的设置,您可能需要查看配置转换。为每个环境设置转换配置,然后使用指定的构建配置部署到该环境。

E.g。 Web.Dev.config(假设您已设置'Dev'构建配置)

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <appSettings>
    <add key="settingKey" 
      value="devEnvironmentValue" 
      xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/>
  </appSettings>
</configuration>

有关构建配置和配置转换的更多详细信息,请访问:http://msdn.microsoft.com/en-us/library/dd465318(v=vs.100).aspx

或者您可以利用TFS功能并参数化环境变量,我对此没有太多经验,但以下内容应该有所帮助:http://ig.obsglobal.com/2013/02/tfs-and-continuous-deployment-part-4-parameterized-deployments/