我正在使用.NET MVC
我想要存储在配置文件(.config等)中的大约10个属性,与环境/部署内容相关,+其他用于快速更改而无需执行dLL
部署的内容。
我正在使用Team foundation服务进行CI构建等,而我的web.config显然是在版本控制下。
我想做的是有一个settings.config(不在版本控制中)文件存储这些,我能做到吗?
还是需要在web.config中?
答案 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/