【问题标题】:Exclude app.config from source control?从源代码管理中排除 app.config?
【发布时间】:2010-12-23 14:53:39
【问题描述】:

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

【问题讨论】:

    标签: asp.net configuration app-config


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      没有一种“最好的方法”。这取决于团队和环境。

      与您的团队成员讨论并决定适合您的情况。在您的具体情况下,给您“这是最好的方法”可能行不通。

      【讨论】:

        【解决方案3】:

        很长一段时间以来,我一直认为 Microsoft 让配置管理成为一个彻头彻尾的麻烦。

        幸运的是,现在您可以使用 appSettings 的 file 属性和其他部分的 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>
        

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-03-11
          • 2018-08-10
          • 2016-04-09
          • 2015-06-07
          • 2017-12-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多