发布在发布模式下构建的DLL,但带有debug=true

本文关键字:debug true DLL 构建 布模式 模式 | 更新日期: 2023-09-27 17:50:11

如果您构建并发布一个ASP。. NET web 应用程序在发布模式下,执行以下web中的debug="true"。配置行在开发环境有什么不同吗?

<compilation defaultLanguage="vb" debug="true" />

显然,您将始终在生产服务器上具有debug="false" -这是没有问题的。

我的问题是,当我构建用于发布到生产系统的DLL时,是否应该设置debug="false"

目前我没有,因为它是一个PITA,必须记住在true用于开发和false用于发布之间进行更改。我希望答案是"没关系"。

(我正在使用Visual Studio 2010和。net 4.0 -解决方案包含VB。. NET和c#项目,由于遗留原因)。

发布在发布模式下构建的DLL,但带有debug=true

请阅读以下关于运行debug="false"的重要性的文章

摘录:

[keep the debug="true"]会导致一些不理想的事情发生,包括:

1) ASP。. NET页面需要更长的时间(因为一些批处理优化被禁用)

2)代码可以执行得更慢(因为一些额外的调试路径启用)

3)运行时应用程序使用了更多的内存

4)从web资源下载的脚本和图像。一个处理程序是没有缓存的


在freefaller的评论之后,我想补充的是,配置值在发布时并不重要,只有在运行时才重要。因此,您可以使用debug="true"在发布模式下编译程序集,并使用debug="false"部署它,而不会出现任何问题。该参数仅作用于运行时配置

程序集的编译模式与ASP的调试模式有很大的区别。网络应用程序。

发布模式的程序集允许编译器进行优化,使代码更快,并且通常消耗更少的资源。

相反,<compilation debug="true" />使应用程序变慢并且消耗更多的内存,通常在上面的答案中报告的所有缺点

我认为VS不会接受web中编译标签的调试属性值。当程序员重新构建项目时配置。
当我用Configuratoin=release重新构建我的项目时,我将调试属性的值保留为"debug"。然后我下载实用程序。net汇编信息来检查我的构建的输出。我发现那些娃娃都是"释放"的!!