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

joh*_*dl1 4 asp.net configuration app-config

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

ret*_*ile 5

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

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


nin*_*inj 5

很长一段时间以来,我一直认为微软让配置管理成为一个彻头彻尾的痛苦.

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

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

在Web.Config中配置ASP.NET ConnectionStrings和AppSettings的最佳实践

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

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

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