18Mar/090
ASP.NET MVC 1.0 Released
17Jul/051
ASP.NET 2.0 的预编译部署
asp.net 和 asp 对开发人员来说要一件很头疼的事就是保护自己的源代码不被窃取/修改,在 asp.net 2.0 中总于提供了预编译的部署方式来解决这个问题。
asp.net 2.0 中,开发人员可以在部署网站前将网站编译成 dll 文件复制到目标网站即可,不再需要部署源代码甚至 aspx 文件。.net 2.0 提供了命令行工具 aspnet_compiler.exe 来完成这个工作。aspnet_compiler.exe 文件位于 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50215(此处为安装的 .net framework 的版本号)。
aspnet_compiler.exe 命令行的基本的格式举例:
aspnet_compiler.exe -p "d:\my sourcecode\mysite1" -v / "c:\inetpub\wwwroot" :将 d:\my sourcecode\mysite1 目录下的网站预编译,输出到 c:\inetpub\wwwroot 目录下, 目标网站的应用程序目录为 /。
aspnet_compiler.exe -v "/mysite1" "c:\inetpub\wwwroot\mysite1" :将本机 mysite1 虚拟目录下的网站预编译,输出到 c:\inetpub\wwwroot 目录下,目标网站的应用程序目录为 /mysite1。
其他参数
-f 参数强制覆盖目标路径文件。
预编译后的网站会将网站代码文件,用户控件文件,源代码文件编译成 dll 文件放到 bin 目录下,aspx 文件将仍然存在,但内容会变成一行文本 "This is a marker file generated by the precompilation tool, and should not be deleted!" , 主要是因为担心 IIS 脚本映射中 aspx 文件的映射关系上“检查文件是否存在”被选中,缺省情况下把所有 aspx 文件删除掉网站也是可以运行的。
命令行工具运行起来比较麻烦,有人写了一个 GUI 工具 West Wind ASP.NET 2.0 Compiler Utility 来方便执行预编译,可以到这里直接下载。希望 vs.net 2005 正式版可以直接内置这个功能。
参考文档:Precompilation In ASP.NET 2.0 <http://www.odetocode.com/Articles/417.aspx>