默认情况下,当发布网站时,ASP.NET 会使用批编译功能来编译网站:编译器将每个文件夹中的多个源文件的
输出合并到每个文件夹的单个程序集中。编译器根据各种不同的因素(包括源文件间的依赖项)来决定要合并
哪些源输出。批编译将生成的名称分配给产生的程序集,而程序集不会直接映射到原始的源文件。有了批编译
功能,每次发布网站时都会重新生成程序集名称。
如果要只发布对网站特定部分的更新而不重新部署整个网站,则批编译所创建的程序集可能不适合于这种
网站。在这种情况下,使用与源文件一对一映射且具有可预知名称的程序集可能会更为方便。
在 Visual Web Developer 中发布 ASP.NET 网站时,可以选择为单页程序集生成固定文件名;单页程序集是已
编译的程序集,每个单页程序集对应于单个页或用户控件(即 .aspx、.ascx 和 .master 文件)。固定文件名
选项也会在您编译和发布网站时保留程序集的名称。对单页程序集使用固定文件名时,将关闭批编译功能以进
行预编译。(主题和外观文件以及不包含页或用户控件的其他文件夹都将继续编译为单个程序集。)
选择生成固定程序集名称时,ASP.NET 将执行以下操作:
为应用程序中的每个 .aspx、.ascx 和 .master 文件创建一个程序集。应该限制应用程序中的页数以减少
生成的程序集数量。
使用页的虚拟路径作为页的程序集的名称。如果虚拟路径长度超过操作系统的文件名长度限制,该工具将改为
使用虚拟路径的哈希。 与批编译时一样,将顶层目录(如 App_Code 目录)中的文件编译为单个程序集。