从源代码管理中排除app.config?

时间:2009-12-05 19:52:57

标签: asp.net configuration app-config

允许团队成员自定义自己的app.config,但在版本控制中保留权威版本的最佳方法是什么?是否最好从源代码管理中排除所有* .config文件,并在版本控制中使用app.config.template文件?

3 个答案:

答案 0 :(得分:5)

模板方法是我见过的最好的方法。如果您可以自动确定它应包含的内容(例如通过运行脚本来检查适当的值),那么您可以在构建过程中包含该内容并自动从模板创建文件。如果您无法自动确定需要包含的内容,请确保您的构建过程将检查配置文件,并为开发人员提供有关在构建工作之前应配置的内容的有用指导。

您希望您的scm忽略配置文件本身,以便您的开发人员不会意外地将其提交到存储库。

答案 1 :(得分:5)

很长一段时间以来,我一直认为微软让配置管理变得非常痛苦。

幸运的是,现在您可以使用appSettings的appSettings属性和其他部分的connectionStrings属性来外部化fileconfigSource部分等设置。

不幸的是,MSDN中隐藏了configSource的文档,这就是为什么我认为它并不广为人知。提供的文档也相当平淡,但这里有更好的解释:

Best Practices for Configuring ASP.NET ConnectionStrings and AppSettings in Web.Config

换句话说,你可以做这样的事情:

<appSettings file="webAppSettings.config">
  <add key="UseCache" value="True"/>
  <add key="MapsKey" value="1234567890-AA"/>
  <add key="SMTPServer" value="smtp.peterkellner.net"/>
</appSettings>

<connectionStrings configSource="WebConnectionString.config">
</connectionStrings>

您可以将此方法与模板方法结合使用,以处理不同环境的设置。

答案 2 :(得分:1)

没有一个“最佳方式”。这取决于团队和环境。

与您的团队成员讨论并决定哪些方法适合您的情况。给你“这是最好的方式”可能不适合你的具体情况。