【发布时间】:2009-04-23 09:55:28
【问题描述】:
在 VS2008 中(如果我没记错的话,更早的版本)我有下拉菜单让我在调试和发布模式之间进行选择。一切顺利。
当我将 VS 切换到 Release 时,我的 web.config 文件中的调试属性根本没有设置为 false。
这是应该的方式吗?我一定会忘记在部署时将其设置为正确的值。我应该采取什么措施来确保它正常工作?
【问题讨论】:
标签: c# .net asp.net-mvc visual-studio
在 VS2008 中(如果我没记错的话,更早的版本)我有下拉菜单让我在调试和发布模式之间进行选择。一切顺利。
当我将 VS 切换到 Release 时,我的 web.config 文件中的调试属性根本没有设置为 false。
这是应该的方式吗?我一定会忘记在部署时将其设置为正确的值。我应该采取什么措施来确保它正常工作?
【问题讨论】:
标签: c# .net asp.net-mvc visual-studio
【讨论】:
您的 web.config 可能会因调试和发布(连接字符串、密码等)而不同,但如果不是,请查看将复制到不同文件的 postbuild 事件。
同时查看 Scott Guthrie 的 this blog post。
【讨论】:
更改发布模式不会更改 web.config,但是当您构建 Web 应用程序时,它将仅在发布模式下为 C# 文件构建 dll,而 IIS 使用 web.config 的调试开/关来构建调试/release 版本的 ASPX 标记文件。
【讨论】:
构建风格只会影响代码的编译方式,不会影响您的配置文件。所以是的,回答你的问题,应该是这样的。
【讨论】:
如果您可以访问服务器的 machine.config,该元素是一个很好的解决方案,该服务器仅托管生产应用程序。
我通常在生成部署文件时修改 web.config 文件作为自动构建过程的一部分。例如,Web 部署项目可以执行 web.config 部分替换。我不喜欢 Web 部署项目的原因有很多,我倾向于使用一个简单的 VBS 文件,该文件使用 MSXML 修改文件。
【讨论】:
您从 Bobby 那里选择的答案不正确。当您在 VStudio 中时,Visual Studio 会在发布时为您构建文件。
IIS 在您部署时使用该设置在启动时编译代码。不是 bin 目录,而是 App_Code 和文件背后的代码。
您应该在部署之前预编译您的应用程序,这会将您的代码后面和 App_Code 目录编译到 bin 目录中的 dll 中。
如果您将部署工具设置为发布,部署工具会自动切换该设置
【讨论】: