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

Bac*_*tnz 3 c# asp.net asp.net-mvc

我正在使用.NET MVC

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

我正在使用团队基础服务进行CI构建等,而我的web.config显然是在版本控制下.

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

还是需要在web.config中?

Bre*_*ing 6

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

例如

<appSettings configSource="settings.config" />
Run Code Online (Sandbox Code Playgroud)

并在settings.config文件中

<?xml version="1.0" encoding="UTF-8"?>
<appSettings>
    <add key="settingKey" value="environmentValue" />
</appSettings>
Run Code Online (Sandbox Code Playgroud)

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

例如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>
Run Code Online (Sandbox Code Playgroud)

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

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