4

我正在使用 .NET MVC

我有大约 10 个要存储在配置文件(.config 等)中的属性,这些属性与环境/部署相关,以及其他无需dLL部署即可快速更改的内容。

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

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

还是需要在 web.config 中?

4

1 回答 1

8

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

例如

<appSettings configSource="settings.config" />

并在 settings.config 文件中

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

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

例如 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-连续部署第 4 部分参数化部署/

于 2013-06-24T01:31:52.207 回答