根据 NoAlias 所说,我对自己的问题有一个答案。我阅读了这两个链接,发现以下内容:
仅用于部署的预编译
当您只为部署进行预编译时,编译器会从通常在运行时编译的几乎所有 ASP.NET 源文件生成程序集。这包括页面中的程序代码、.cs 和 .vb 类文件、其他代码文件和资源文件。编译器从输出中删除所有源代码和标记。在生成的布局中,为每个 .aspx 文件(扩展名为 .compiled)生成编译文件,这些文件包含指向该页面的相应程序集的指针。要更改网站,包括页面布局,您必须更改原始文件、重新编译站点并重新部署布局。唯一的例外是站点配置;您可以更改生产服务器上的 Web.config 文件,而无需重新编译站点。
为部署和更新
进行预编译 当您为部署和更新进行预编译时,编译器会从所有源代码(单文件页面中的页面代码除外)和其他通常会生成程序集的文件(例如资源文件)中生成程序集。编译器将 .aspx 文件转换为使用已编译代码隐藏模型的单个文件,并将它们复制到布局中。此选项使您能够在编译站点中的 ASP.NET 网页后对其进行有限的更改。例如,您可以更改控件的排列、颜色、字体和页面的其他外观方面。您也可以添加控件,只要它们不需要事件处理程序或其他代码。当站点第一次运行时,ASP.NET 会执行进一步的编译,以便从标记中创建输出。笔记
预编译的可更新站点不允许多个页面引用同一个 CodeFile 类。
我最近对该站点进行了更改,以包含 2 个引用相同 CodeFile 的 aspx 页面(后台相同的 VB 代码)每个页面的 html 属性略有不同,但需要具有相同的 CodeFiles,所以对于我的第二个 ASP 页面,我删除了自动生成的 VB 代码文件,然后在 HTML 中引用不同的 CodeFile。
如上所述,预编译的可更新站点不允许多个页面引用相同的代码文件类。这就是为什么我的某些页面无法正常工作的原因。
从这一点开始,我需要避免使用默认复选框“允许此预编译站点可更新”;我的网站必须保持未选中状态才能使用引用我的多个页面的 VB 代码文件。
结论:引用同一个 CodeFile 的多个 aspx 页面需要预编译才能正确运行。这意味着如果不重新部署,该站点将无法对其进行任何更改。