2009-12-05 57 views
4

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

回答

5

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

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

0

没有人“最好的方式”。这取决于团队和环境。

与你的团队成员交谈,并决定什么适用于你的情况。给你一个“这是最好的方式”可能不适用于你的具体情况。

5

很长一段时间我一直认为,微软所做的配置管理在屁股疼痛完全。

幸运的是,现在你可以使用file属性的appSettings和configSource属性其他部分外化于appSettingsconnectionStrings段等设置。

的configSource该文档以MSDN隐藏起来,不幸的是,这就是为什么我认为它没有更广为人知。提供的文件也相当平淡,但有一个更好的解释一下:

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> 

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