Общие сведения о предварительной компиляции проектов веб-приложений ASP.NET

По умолчанию для предварительной компиляции в единую сборку файлов кода проекта веб-приложения используется Microsoft Build Engine (MSBuild). Компиляция веб-страниц ASP.NET (ASPX), пользовательских элементов управления (ASCX) и представлений MVC Razor (CSHTML и VBHTML) выполняется динамически на сервере с помощью компилятора ASP.NET. При необходимости также можно выполнить предварительную компиляцию веб-страниц, пользовательских элементов управления и представлений Razor.

Примечание

Данный раздел относится только к проектам веб-приложений.Сведения о различиях между проектами веб-приложений и веб-сайтов см. в разделе Сравнение проектов веб-приложений с проектами веб-сайтов в Visual Studio.Сведения о предварительной компиляции проектов веб-сайтов см. в разделе ASP.NET Web Site Project Precompilation Overview.

Модель компиляции

Все файлы кода проекта (автономные файлы, а также файлы с выделенным кодом и классов конструктора) предварительно компилируются в единую сборку. По умолчанию эта сборка создается и сохраняется в папке Bin. Поскольку в этой модели компиляции создается единая сборка, можно задать различные атрибуты, в том числе имя и версию сборки. Также можно задать расположение выходной сборки. Чтобы изменить расположение выходной сборки, в обозревателе решений щелкните правой кнопкой мыши имя проекта, выберите пункт Свойства, затем выберите вкладку Построение. На вкладке Построение имеется поле Выходной путь, в котором можно указать путь к выходной сборке.

Как и проект веб-узла, проект веб-приложения определяется файлом, а не папкой проекта. Файл проекта содержит ссылки на включенные в проект файлы, а также ссылки на сборки и другие параметры метаданных проекта. Файлы, находящиеся в папке проекта, но не определенные в файле проекта, не компилируются в составе проекта веб-приложения. Ссылки на параметры проекта, созданные и измененные в Visual Studio или Visual Web Developer, экспресс-выпуск, сохраняются в файле проекта с расширением PROJ, который создается для каждого проекта.

Для выполнения и отладки страниц следует скомпилировать проект веб-приложения. Однако построение всего проекта веб-приложения может выполняться быстро, так как в Visual Studio и Visual Web Developer, экспресс-выпуск используется инкрементная модель построения, предусматривающая построение только измененных файлов.

Дополнительные сведения см. в разделе Web Application Projects Overview.

Aa983464.collapse_all(ru-ru,VS.110).gifКомпиляция файлов классов

Для компиляции файлов классов в проектах веб-приложений используется служебная программа MSBuild. Файлы классов компилируются в единую сборку. По умолчанию они сохраняются в папке Bin. Для настройки процесса компиляции можно использовать стандартные правила расширения MSBuild. Дополнительные сведения см. в разделе MSBuild.

В следующей таблице описываются типы компилируемых в единую сборку файлов классов в проектах веб-приложений.

Тип файла класса

Описание

Автономный

Файлы класса, которые можно создавать и добавлять в папку Bin.

Код программной части

Пользовательский код, определяющий отображение и другое поведение веб-страниц ASP.NET.

Конструктор

Автоматически создаваемый код. Изменение файлов с расширением DESIGNER не допускается.

Aa983464.collapse_all(ru-ru,VS.110).gifПараметры настройки компиляции

Имя и версию выходной сборки, а также другие сведения можно задать в окне Конструктор проектов с помощью элементов, расположенных на странице Приложение. В окне Конструктор проектов на странице Построение можно настроить параметры построения проекта. Например, можно установить порядок обработки ошибок, а также сведения о выходных данных сборки. Кроме того, на странице свойств События построения можно добавить действия, выполняемые до и после построения во время компиляции. Дополнительные сведения о страницах свойств см. в разделе Справочник по пользовательскому интерфейсу конструктора проектов.

Установка свойства "Действие при построении"

Если свойству Действие при построении присвоено значение Компилировать, с помощью программы MSBuild по умолчанию компилируются только файлы классов в проектах веб-приложений. Обратите внимание, что файлы классов, содержащиеся в папке App_Code проекта веб-приложения, компилируются с помощью ASP.NET. Компиляция этих файлов выполняется даже в том случае, если значение Компилировать не установлено явно в качестве действия при построении.

Примечание

Папка App_Code существует для проектов веб-сайтов.Эта папка обычно не включается в проекты веб-приложений.Дополнительные сведения о папке App_Code см. в разделе Shared Code Folders in ASP.NET Web Sites.

Динамическая компиляция

Файлы кода предварительно компилируются в единую сборку с помощью программы MSBuild. В то же время, веб-страницы ASP.NET (ASPX), пользовательские элементы управления (ASCX) и представления MVC Razor (CSHTML и VBHTML) проекта веб-приложения компилируются динамически на сервере с помощью компилятора ASP.NET. Это означает, что после компиляции и развертывания веб-страниц ASP.NET, пользовательских элементов управления и представлений Razor в них можно вносить определенные изменения. Например, можно изменить расположение элементов управления, цвет, шрифт и другие параметры, определяющие внешний вид страницы. Когда после внесения таких изменений на сайт поступает первый запрос страницы, ASP.NET перекомпилирует измененные файлы.

Можно определить элемент управления в файле с выделенным кодом, если он является защищенным или общим. Так как ASPX-страница наследует файл кода программной части, эта страница будет использовать такой элемент управления. В следующих случаях рекомендуется помещать определение элемента управления в файл с выделенным кодом.

  • Тип элемента управления должен наследоваться от встроенного типа ASP.NET.

  • Необходимо определить отличную от определенной по умолчанию область действия элемента управления. Область ссылается на уровень доступности, такой как public, private, internal, protected и protected internal.

  • Необходимо добавить атрибуты метаданных в объявление элемента управления.

  • Необходимо указать комментарии к коду XML в объявлении элемента управления.

Дополнительные сведения о добавлении элементов управления см. в разделе How to: Add Controls to an ASP.NET Web Page Programmatically.

Развертывание

По умолчанию все файлы классов компилируются в единую сборку, поэтому развертывать необходимо только эту сборку вместе с ASPX-, ASCX-, CSHTML- и VBHTML-файлами, а также файлами статического содержимого. В этом случае разметка в ASPX-, ASCX-, CSHTML- и VBHTML-файлах не компилируется в исполняемый код, пока страница не будет запрошена браузером.

Однако можно указать другие параметры компиляции и слияния. Например, можно выполнить предварительную компиляцию файлов ASPX или указать, что следует создать несколько сборок вместо одной. Дополнительные сведения о параметрах компиляции и слияния проекта веб-приложения, а также методах их указания см. в следующих источниках:

Дополнительные сведения о развертывании проектов веб-приложений см. в разделе Карта содержимого веб-развертывания для Visual Studio b ASP.NET.

См. также

Основные понятия

Карта содержимого веб-развертывания для Visual Studio b ASP.NET

Сравнение проектов веб-приложений с проектами веб-сайтов в Visual Studio

Другие ресурсы

MSBuild