debug与release
关于 ASP.NET 应用程序 WEB.CONFIG 中 compilation/@debug 设置
<compilation defaultLanguage="c#" debug="false"/>
和我们 VS.NET IDE 中项目的 build---> debug/release 设置之间的区别,是这样的:
通常来说对于一个.net assembly 我们在编译的时候需要指定 debug或者release 版本,这样生成的assembly中会相应包含或者不包含调试的symbol以及调试数据库信息。 而对于 ASP.NET, 项目中的 BUILD---> DEBUG/RELEASE 设置也是这样的,它确定的是我们最后生成的项目的主 assembly的版本信息(最后要放在应用程序 bin目录中的)。
然而, asp.net 中,最终执行页面/ascx 控件都是动态编译(在临时文件夹中生成动态的临时
assembly)的,所以我们需要为这些动态编译的组件也制定相应的版本信息,这也就是我们需要再 web.config 中提供
<compilation defaultLanguage="c#" debug="false"/>
的目的。 同时 这个设置要控制了asp.net 应用程序是否可以直接 F5 调试,以及动态编译的 ASSEMBLY 是否是每个页面单独编译成一个 ASSEMBLY 还是多个页面编译在一个 assembly 中。
主要就是这些区别
<compilation defaultLanguage="c#" debug="false"/>
和我们 VS.NET IDE 中项目的 build---> debug/release 设置之间的区别,是这样的:
通常来说对于一个.net assembly 我们在编译的时候需要指定 debug或者release 版本,这样生成的assembly中会相应包含或者不包含调试的symbol以及调试数据库信息。 而对于 ASP.NET, 项目中的 BUILD---> DEBUG/RELEASE 设置也是这样的,它确定的是我们最后生成的项目的主 assembly的版本信息(最后要放在应用程序 bin目录中的)。
然而, asp.net 中,最终执行页面/ascx 控件都是动态编译(在临时文件夹中生成动态的临时
assembly)的,所以我们需要为这些动态编译的组件也制定相应的版本信息,这也就是我们需要再 web.config 中提供
<compilation defaultLanguage="c#" debug="false"/>
的目的。 同时 这个设置要控制了asp.net 应用程序是否可以直接 F5 调试,以及动态编译的 ASSEMBLY 是否是每个页面单独编译成一个 ASSEMBLY 还是多个页面编译在一个 assembly 中。
主要就是这些区别