中的一个。净项目,说你有一个结构设置-就像一个连串存在的应用程序。配置文件,该文件是不同的,对每一个开发商在你的团队(他们可以使用本地SQL服务器,或者一个具体服务器的实例,或者使用远程服务器、等等)。

你怎能结构解决方案,以便每个开发商可以拥有自己的发展"的优先选择"(即不会检查到源的控制),但提供默认接串检查到源的控制(由此提供正确的默认为建立过程中的或新的开发者)。


编辑:可以的"file"方法,建议通过@Jonathon以某种方式使用与 connectionStrings 部分?

有帮助吗?

解决方案

若可以复盖一个地方文件:

<appSettings file="localoveride.config"/>

这使得为每个开发者保持他们自己的地方设置。

就连串,在一个完美的世界上所有开发人员应连接到一个测试数据库,运行不SQL服务器中的每一个。

然而,我已经找到了最好保持一个文件命名为网络。Config。Prd源的控制和使用的用于建造的部署。如果有人修改网。config,他们还必须添加的变化。PRD文件...,没有良好的自动化:(

其他提示

编辑:可以"文件"方法的建议 通过@Jonathon以某种方式使用与 connectionStrings部分?

或者你可以有多个连串检查在配置文件,并使用若键,以确定哪。是可以使用。我有以下在我的代码,用于这一目的:

public class ConnectionString
{
    public static string Default
    {
        get 
        { 
            if (string.IsNullOrEmpty(ConfigurationManager.AppSettings["DefaultConnectionStringName"]))
                throw new ApplicationException("DefaultConnectionStringName must be set in the appSettings");

            return GetByName(ConfigurationManager.AppSettings["DefaultConnectionStringName"]);
        }
    }

    public static string GetByName(string dsn)
    {
        return ConfigurationManager.ConnectionStrings[dsn].ConnectionString;
    }
}

我总是做模板我的配置文件。

作为一个例子,我用NAnt建立我的项目。我有一个文件检查在所谓的地方。属性。xml。模板。我NAnt建立将发出警告,如果开发人员local.properties.xml 并不存在。内部文件,将工作站的具体设置。该模板将进行检查到源的控制,但是实际配置不会。

我用相当陈旧的设计,只是工作。

  • /_测试__应用程序。config
  • /_Prod__应用程序。config
  • /应用程序。config

然后在我的nant脚本,我有一个任务的副本,目前建立的环境中加_应用程序。配置和复制它的应用程序。config。

其讨厌的,但是你不能得到在供应商之间和ConfigurationManager欺骗,说供应商的"开发"或"生产"连串仅有3名为连串。

nant任务:

<target name="copyconfigs" depends="clean">
  <foreach item="File" property="filename" unless="${string::get-length(ConfigPrefix) == 0}">
   <in>
     <items>
       <include name="**/${ConfigPrefix}App.config" />
       <include name="**/${ConfigPrefix}connectionstrings.config" />
       <include name="**/${ConfigPrefix}web.config" />
     </items>
   </in>
   <do>
    <copy overwrite="true" file="${filename}" tofile="${string::replace(filename, ConfigPrefix,'')}" />
   </do>
  </foreach></target>

可以"文件"方法,建议通过@Jonathon以某种方式使用connectionStrings部分?

没有,但没有什么阻止你从储存。作为一个若键。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top