记得前不久看了一篇《aspx->cs->dll》的文章,作者说的是如何将aspx文件处于已经编译成的dll文件状态,实现asp.net部署dll。原作者提到的方法是aspx文件每次访问的时候都会编译,我们先对每个aspx文件访问,然后在"%systemroot%\Microsoft.NET\Framework\版本号\Temporary ASP.NET Files\项目名称\随机数\随机数"这个目录下会找到相应的文件。
其实对asp.net文件预编译是不错的,也是微软的一个很有特色的功能吧,保护了代码,同时也提高了访问速度,但实际上预编译没有那么麻烦,我们可以很简单的实现。
比如我们现在编译的应用程序,虚拟目录是aspnet,实际物理路径是E:\aspnet,我们编译后的目标路径是E:\www,那么我们只要执行如下命令就可以了:
aspnet_compiler -v /Aspnet -p E:\aspnet E:\www
执行完成后,我们发现E盘下生成了www的目录,里边的子目录App_Code和所有.cs文件都不见了,还有master页及其代码.cs文件也不见了。多了一个bin目录(里边是些.compiled和dll文件)和一个PrecompiledApp.config文件。其实这时候.aspx文件也被编译了,只是它作为一个标记文件还存在,实际上没有任何实质性的内容(我们发现这时候每个aspx文件的内容都是“这是预编译工具生成的标记文件,不应被删除!”,其实删了也无所谓)。
aspnet_compiler是个很不错的工具,用来预编译ASP.NET应用程序。打开Visual Studio 2005命令提示就可以执行了。详细的可以aspner_compiler -?看看帮助。
推荐相关文章《编译asp.net 2.0项目到dll文件》http://www.cnblogs.com/HignMoutain/archive/2006/11/17/563427.aspx 虽然作者的思想比较麻烦了一点,但对原理性的东西介绍的还是比较丰富。