允许团队成员自定义自己的app.config,但在版本控制中保留权威版本的最佳方法是什么?是否最好从源代码管理中排除所有* .config文件,并在版本控制中使用app.config.template文件?
答案 0 :(得分:5)
模板方法是我见过的最好的方法。如果您可以自动确定它应包含的内容(例如通过运行脚本来检查适当的值),那么您可以在构建过程中包含该内容并自动从模板创建文件。如果您无法自动确定需要包含的内容,请确保您的构建过程将检查配置文件,并为开发人员提供有关在构建工作之前应配置的内容的有用指导。
您希望您的scm忽略配置文件本身,以便您的开发人员不会意外地将其提交到存储库。
答案 1 :(得分:5)
很长一段时间以来,我一直认为微软让配置管理变得非常痛苦。
幸运的是,现在您可以使用appSettings的appSettings
属性和其他部分的connectionStrings
属性来外部化file
和configSource
部分等设置。
不幸的是,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)
没有一个“最佳方式”。这取决于团队和环境。
与您的团队成员讨论并决定哪些方法适合您的情况。给你“这是最好的方式”可能不适合你的具体情况。