繁体   English   中英

ASP.NET编译结果

[英]ASP.NET Compilation result

我正在用wrox阅读Professional Asp.net,有一件事引起了我的注意。 作者说,在每次访问站点后,如果尚未编译特定站点,则asp.net引擎正在运行编译。 之后,我们的应用程序中的此特定站点不会在下次请求时重新编译-仅在第一个请求期间。 但这对我来说真的没有意义,因为在我们使用aspnet_compiler编译站点后,输出仅包含应用程序中所有页面的单个dll。 所以我的问题是-在用aspnet_compiler预编译的应用程序与在对应用程序中特定页面的首次请求过程中即时编译的应用程序之间,编译文件的结构是否存在差异。

我的理解是,当您在Visual Studio中建立网站时,生成的dll来自您的.cs文件(或.vb,具体取决于您使用的语言)。 任何可能包含服务器端代码和html的文件(例如.aspx或.ascx)目前都不会编译,而是用户第一次点击它们时会编译,而不是任何.cs文件。 参见这里阅读动态编译部分。

尽管使用MSBuild将项目中的代码文件预编译为单个程序集,但ASP.NET编译器会在服务器上动态编译Web应用程序项目的ASP.NET网页(.aspx)和用户控件(.ascx) 1

您的问题有点含糊。 有什么区别吗? 您指的是哪种区别? 结构体? 您所说的结构是什么意思?

在典型配置中,aspnet_compiler会在运行时执行操作,但会在编译时而不是在运行时执行。 它产生的代码与最终将运行的代码基本相同。

但是,仍然必须进行编译。 与cs或vb编译器一样,aspnet_compiler仅编译为字节码。 除非您在安装字节码时将其生成,否则字节码仍必须在运行时编译为本机代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM