开源存储库中的Web.config

时间:2011-05-22 18:45:38

标签: asp.net-mvc mercurial web-config

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

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

2 个答案:

答案 0 :(得分:3)

建议的方法如下:

  1. 创建您希望人们使用作为起点的文件的公共版本副本,并将其命名为实际可用文件以外的其他内容。在您的情况下,它可能是web.config.template。如果您刚刚重命名该文件,请确保该文件可用。
  2. 指示Mercurial忽略实际文件,即。 web.config
  3. 如果可能的话,如果实际文件存在,请使构建过程弄清楚,如果不存在,则从模板文件复制到实际文件中
  4. 如果无法执行第3步,则制作实际文件的批处理文件是下一个最佳选择,或者是如何制作文件的简单说明。
  5. 这可以确保:

    1. 有一种获取实际配置文件的简单方法
    2. 您可以编辑本地实际配置文件,而无需担心提交(忽略它)
    3. 如果可以执行第3步,除非您需要对文件进行修改,否则这在很大程度上是透明的
    4. 可以使用项目的预构建事件处理第3步,例如:

      if not exist web.config copy web.config.template web.config
      

答案 1 :(得分:2)

您可以将通用版本提交到您的存储库,可能仅在初始加载时(以便项目将为那些不知道如何创建自己的项目构建),然后再添加一个忽略规则以便您可以添加你的连接字符串等等。