开源存储库中的Web.config

Paw*_*iak 7 asp.net-mvc mercurial web-config

我正在使用ASP.NET MVC在C#中创建Web应用程序,我正在使用我的机器上安装的MSSQL服务器.

我还想将应用程序发布为开源项目,并在生产服务器上运行它.我应该将web.config文件添加到源代码存储库吗?如果我应该,我应该如何跟踪"开源版本"(指向安装在localhost上的MsSQL)生产版本(指向我托管的web.config(我正在使用Mercurial)).

ang*_*son 3

推荐的方法如下:

  1. 创建您希望人们用作起点的文件的公共版本的副本,并将其命名为实际可用文件以外的名称。就你而言,可能是web.config.template。如果您刚刚重命名该文件,请确保该文件可用。
  2. 指示 Mercurial 忽略实际文件,即。web.config
  3. 如果可能,让构建过程确定实际文件是否存在,如果不存在,则从模板文件复制到实际文件中
  4. 如果步骤 3 不可行,则最好使用用于制作实际文件的批处理文件,或者有关如何制作该文件的简单说明。

这可以确保:

  1. 有一种获取实际配置文件的简单方法
  2. 您可以编辑本地实际配置文件,而不必担心提交它(它被忽略)
  3. 如果步骤 3 可行,则这在很大程度上是透明的,除非您需要对文件进行修改

第 3 步可以通过项目的预构建事件来处理,例如:

if not exist web.config copy web.config.template web.config
Run Code Online (Sandbox Code Playgroud)