什么是Web.Debug.config和Web.Release.Config文件?

时间:2010-05-07 19:37:12

标签: asp.net asp.net-mvc visual-studio-2010 asp.net-mvc-2 web-config

我刚刚升级到Visual Studio 2010和MVC 2.0,我注意到Web.config附加了两个附加文件?这些文件是否用于指定调试和发布特定设置,因此您不会使主Web.config混乱?

如果在调试和发布Web.configs中分别有本地和远程连接字符串,那么在根Web.config文件中放置连接字符串是否有意义?

谢谢!

4 个答案:

答案 0 :(得分:93)

这是Visual Studio 2010的新Web.config转换功能。More information here


编辑:

  

这些文件是否用于指定调试和发布特定设置,因此不会使主web.config混乱?

它不仅限于三个文件,您(理论上)可以拥有与环境一样多的文件。 “顶级”Web.config提供了Web配置的模板。它下面的文件提供特定于该环境的替换值(例如,如果你有本地/ stage / test /的不同连接字符串)。

  

如果我在调试和发布web.configs中分别有本地和远程连接字符串,那么在根web.config文件中放置连接字符串是否有意义。

只有不在环境之间改变才有意义。听起来像你的情况一样,在你的情况下没有,将它留在Web.config中是没有意义的。

答案 1 :(得分:10)

这些是Web.config转换文件。来自ASP.NET Web Deployment using Visual Studio: Web.config File Transformations

  

有两种方法可以自动更改Web.config文件设置的过程:Web.config转换和Web Deploy参数。 Web.config转换文件包含XML标记,该标记指定在部署Web.config文件时如何更改。   你可以指定   特定构建配置和特定构建配置的不同更改   发布个人资料默认的构建配置是Debug和   发布,您可以创建自定义构建配置。发布   配置文件通常对应于目标环境。

答案 2 :(得分:1)

如果有人感兴趣,我写的是每个环境都有一个动态连接字符串。我想将代码部署到任何环境(Dev,Test,Pre-Prod,Prod ...),而不必担心更改连接字符串。我无法用Asp.Net MVC 4找到一个好方法,所以我想出了一种依靠每个环境的属性文件的方法。

可能有更好的解决方案,我来自Wicket / Java背景,最近开始使用MVC 4进行开发,因此可能存在更好的解决方案。但是这里有一个关于动态连接字符串的问题和答案的链接:

Asp.net MVC 4 dynamic connection string

答案 3 :(得分:-3)

这是VS中长期需要的东西。不幸的是,实施似乎存在问题。例如,考虑这种情况(VS.2010 Ultimate,所有SP):

的Web.Config

  • 没有connectionStrings部分
  • 正式会员用户/角色/等。使用connectionStringName =“test”
  • 的提供程序配置

Web.Release.Config

  • 没有成员资格配置(已在主web.config中指定)
  • connectionStrings部分包括名为“test”的CS

Web.Debug.Config

  • 没有成员资格配置(已在主web.config中指定)
  • connectionStrings部分包括名为“test”的CS

执行应用程序时出现以下错误:

  

在应用程序配置中找不到连接名称'test',或者连接字符串为空。

换句话说,因为连接字符串元素位于发布/调试设计器文件中,而主要(Web.config)文件中的配置元素使用 ,所以它无法解析它。 / p>