Answers:
它的Visual Studio 2010中新的Web.config转换特征更多的信息在这里。
编辑:
这些文件是否用于指定调试和发布特定设置,所以您不会弄乱主web.config?
它不限于三个文件,(理论上)您可以拥有与环境一样多的文件。“顶级” Web.config提供了您的Web配置的模板。它下面的文件提供特定于该环境的替换值(例如,对于本地/阶段/测试/其他,您是否具有不同的连接字符串)。
如果我分别在debug和release web.configs中有本地和远程地址,那么在根web.config文件中放置连接字符串是否有意义?
只有在环境之间不改变时才有意义。听起来像是您这样做,否则就没有必要将其保留在Web.config中。
这些是Web.config转换文件。从使用Visual Studio的ASP.NET Web部署:Web.config文件转换:
有两种方法可以自动执行更改Web.config文件设置的过程:Web.config转换和Web Deploy参数。Web.config转换文件包含XML标记,该标记指定了在部署Web.config文件时如何更改它。 您可以为特定的构建配置和特定的发布配置文件指定不同的更改。默认的构建配置为“调试”和“发布”,您可以创建自定义构建配置。发布配置文件通常对应于目标环境。
如果有人感兴趣,这是我写的,每个环境都有一个动态连接字符串。我想将代码部署到任何环境(Dev,Test,Pre-Prod,Prod ...),而不必担心更改连接字符串。我真的找不到用Asp.Net MVC 4做到这一点的好方法,因此我想出了自己的方法来依赖每个环境的属性文件。
可能有更好的解决方案,我来自Wicket / Java,最近开始使用MVC 4开发,因此可能存在更好的解决方案。但这是我的问题和答案的链接,用于动态连接字符串:
这是VS中长期需要的。不幸的是,实现似乎有问题。例如,考虑以下情形(VS.2010 Ultimate,所有SP):
Web.Config
Web.Release.Config
Web.Debug.Config
执行应用程序时,出现以下错误:
在应用程序配置中找不到连接名称“ test”,或者连接字符串为空。
换句话说,由于连接字符串元素位于Release / Debug设计器文件中,并且由主(Web.config)文件中的配置元素使用,因此无法解析它。
test
在调试和发行配置文件中都有一个命名为连接字符串的名称,则它实际上应该只在主web.config中,并带有适当的部分作为模板。照原样,您正在复制代码,这是模板应为您解决的问题。
xslt
替换命令。在获得5次投票方面做得很好,这些事情加剧了对这些转换文件的困惑 :)