有人可以确认或否认我在下面的假设和/或提供任何替代方案吗?
我的目标
当一键发布到我们的生产环境时,我希望能够预编译和合并我的 ASP.NET MVC 4 应用程序(如此处和此处记录)。
症状
我在 Visual Studio 2012 中有一个 ASP.NET MVC 4 项目。我Web.config
包含在Web.Release.config
转换中删除的各种条目。删除的条目之一是整个configSections
元素,因为我们在生产服务器的Machine.config
.
但是,当我将项目配置为预编译和合并以发布发布时,我收到以下错误:
Unrecognized configuration section [our custom section name]
我的假设
我假设正在发生的是它在发布到生产服务器之前在本地预编译所有内容(这很有意义),但是预编译过程的那一部分是解决和验证从项目到我本地的整个.config
链(这不实际上没有多大意义)。而且由于我的本地没有声明(或我们依赖生产服务器的任何其他设置),因此已解决的不验证。Web.config
Machine.config
Machine.config
configSections
Machine.config
Web.config
而且由于Web.config
没有验证,该站点无法预编译,因此没有任何内容发布到生产环境中。
擦
如果确实发生了这种情况,那么我们将无法预编译,因为我能想到的唯一解决方案(除了一些我无法找到的潜在配置选项)将是我们所有的开发人员都拥有我们生产服务器的本地副本Machine.config
在他们的机器上。这根本不合理,因为它违背了在单个位置声明这些通用设置的整个目的。