在ASP.NET网站项目中预编译特定目录

时间:2009-12-14 20:52:39

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

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

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

如果是这样,我怎么能这样指定这些目录呢?

修改2009.12.17

我的项目结构如下:

  

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

     

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

     

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

我想“预编译” app_pages 控件文件夹。

有可能吗?

3 个答案:

答案 0 :(得分:0)

并非没有太多令人头疼的问题。你现在如何预编译页面?他们必须在WAP中才能使用...所以你不想要预先编译的任何东西都会离开项目。

[编辑]

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

答案 1 :(得分:0)

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

如果您只是尝试对某些静态函数或全局对象进行版本控制,则可以编译DLL以保留在App_Code文件夹中。

答案 2 :(得分:0)

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

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

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

或者

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

希望这会有所帮助..