开发者

Pre-compile specific directories in ASP.NET website project

开发者 https://www.devze.com 2022-12-14 04:11 出处:网络
I have an ASP.NET website project which has a mixture of updateable pages and pages that do not change.

I have an ASP.NET website project which has a mixture of updateable pages and pages that do not change.

Is it possible for me to pre-compile certain directories that contain pages/controls that will not be updated?

If so, how could I designate these directories as such?

Edit 2009.12.17

My project is structured like this:

/cms_pages ==> Updateable .aspx pages marked CompilationMode="never开发者_Go百科" and no code file.

/app_pages ==> .aspx pages with .aspx.cs code file.

/controls ==> .ascx controls with .ascx.cs code file.

I would like to "pre-compile" the app_pages and controls folders.

Is it possible to do?


Do you want to compile your ASPX pages with their codefiles or just compile some .cs files in your App_Code folder?

If you're just trying to version control some static functions or global objects you can compile a DLL to keep in your App_Code folder.


Not without a lot of headaches. How are you precompiling the pages now? They must be in a WAP for this to work... so anything you DON'T want precompiled just leave out of the project.

[Edit]

It's possible to manually call the asp.net compiler. But I don't recommend this. What you really need to do is split up your solution files into different projects... put the files you want pre-compiled into a Web Application Project or just a regular class library. Then in your Web Site add a project reference to this WAP.


Couldn't you just pre-compile all of the controls (and probably anything else) into an assembly then you can access them through myAssembly.myControl

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

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

Or

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

Hope this helps..

0

精彩评论

暂无评论...
验证码 换一张
取 消