Предварительная компиляция определенных каталогов в проекте веб-сайта ASP.NET

У меня есть проект веб-сайта ASP.NET, который имеет смесь обновляемых страниц и страниц, которые не меняются.

Могу ли я предварительно скомпилировать определенные каталоги, которые содержат страницы / элементы управления, которые не будут обновляться?

Если так, как я могу обозначить эти каталоги как таковые?

Изменить 2009.12.17

Мой проект структурирован так:

/ cms_pages ==> Обновляемые страницы.aspx, помеченные CompilationMode="never" и без кода файла.

/ app_pages ==>.aspx страницы с файлом кода.aspx.cs.

/ controls ==>.ascx контролирует с файлом кода.ascx.cs.

Я хотел бы "предварительно скомпилировать" app_pages и папки управления.

Можно ли это сделать?

3 ответа

Вы хотите скомпилировать свои страницы ASPX с их кодовыми файлами или просто скомпилировать некоторые файлы.cs в папке App_Code?

Если вы просто пытаетесь управлять версиями некоторых статических функций или глобальных объектов, вы можете скомпилировать DLL, чтобы сохранить ее в папке App_Code.

Не без головной боли. Как вы прекомпилируете страницы сейчас? Они должны быть в WAP, чтобы это работало... поэтому все, что вы не хотите предварительно скомпилировать, просто исключите из проекта.

[Редактировать]

Можно вручную вызвать компилятор asp.net. Но я не рекомендую это. Что вам действительно нужно сделать, так это разделить файлы вашего решения на разные проекты... поместите предварительно скомпилированные файлы в проект веб-приложения или просто в обычную библиотеку классов. Затем на своем веб-сайте добавьте ссылку на проект для этого WAP.

Не могли бы вы просто предварительно скомпилировать все элементы управления (и, возможно, что-нибудь еще) в сборку, тогда вы можете получить к ним доступ через 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)

Или же

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

Надеюсь это поможет..

Другие вопросы по тегам