【问题标题】:Pre-compile specific directories in ASP.NET website project预编译 ASP.NET 网站项目中的特定目录
【发布时间】:2009-12-14 20:52:38
【问题描述】:

我有一个 ASP.NET 网站项目,其中混合了可更新页面和不会更改的页面。

我是否可以预编译某些包含不会更新的页面/控件的目录?

如果是这样,我该如何指定这些目录?

编辑 2009.12.17

我的项目结构如下:

/cms_pages ==> 标记为 CompilationMode="never" 且没有代码文件的可更新 .aspx 页面。

/app_pages ==> 带有 .aspx.cs 代码文件的 .aspx 页面。

/controls ==> .ascx 控件和 .ascx.cs 代码文件。

我想“预编译”app_pagescontrols 文件夹。

可以吗?

【问题讨论】:

    标签: asp.net deployment compilation precompiled web-site-project


    【解决方案1】:

    你想用它们的代码文件编译你的 ASPX 页面还是只编译你的 App_Code 文件夹中的一些 .cs 文件?

    如果您只是想对一些静态函数或全局对象进行版本控制,您可以编译一个 DLL 以保存在您的 App_Code 文件夹中。

    【讨论】:

      【解决方案2】:

      并非没有很多头痛。您现在如何预编译页面?它们必须在 WAP 中才能正常工作...所以您不希望预编译的任何内容都可以从项目中删除。

      [编辑]

      可以手动调用 asp.net 编译器。但我不推荐这个。您真正需要做的是将您的解决方案文件拆分为不同的项目……将您想要预编译的文件放入 Web 应用程序项目或只是一个常规类库。然后在您的网站中添加对该 WAP 的项目引用。

      【讨论】:

        【解决方案3】:

        难道您不能将所有控件(可能还有其他任何东西)预编译到一个程序集中,然后您就可以通过 myAssembly.myControl 访问它们

         Dim assembly As Reflection.Assembly = Reflection.Assembly.LoadFrom(Server.MapPath(Virtual path to assembly))
        

        将 myControlType 调暗为 Type = assembly.GetType 将 myControl 调暗为 UserControl = LoadControl(myControlType, Nothing) myPanel.Controls.Add(myControl)

        或者

        Dim myControl As Control = LoadControl(virtual path to control)
        myPanel.Controls.Add(myControl )
        

        希望这会有所帮助..

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-12-06
          • 2012-02-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多