Элемент compilation (схема параметров ASP.NET)

Настраивает все параметры, используемые в ASP.NET для компиляции приложений.

<compilation 
   debug="[true|false]"
   batch="[true|false]"
   batchTimeout="number of seconds"
   defaultLanguage="language" 
   explicit="[true|false]" 
   maxBatchSize="maximim number of pages"
   maxBatchGeneratedFileSize="maximum combined size"
   numRecompilesBeforeAppRestart="number"
   strict="[true|false]" 
   tempDirectory="temporary files directory"
   urlLinePragmas="[true|false]"
   optimizeCompilations="[true|false]"
   targetFramework="2.0|3.0|3.5|4.0"
   assemblyPostProcessorType="assembly post processor, assembly"
>
   <assemblies>...</assemblies> 
   <buildProviders>...</buildProviders>
   <folderLevelBuildProviders>...</folderLevelBuildProviders>
   <codeSubDirectories>...</codeSubDirectories>
   <compilers>...</compilers>
   <expressionBuilders>...</expressionBuilders>
</compilation>

Атрибуты и элементы

В следующих разделах описаны атрибуты, дочерние и родительские элементы.

Атрибуты

Атрибут

Описание

assemblyPostProcessorType

Необязательный атрибут элемента String.

Задает шаг постпроцессной компиляции для сборки путем ссылки на постпроцессор сборки. Используйте формат "постпроцессор сборки, сборка". Постпроцессор сборки должен реализовывать интерфейс IAssemblyPostProcessor. Использование данного метода последующей обработки приводит к принудительному включению отладочного режима компиляции, что можно переопределить при задании режима развертывания.

Этот атрибут не использовался до .NET Framework версии 2.0.

Значение по умолчанию — пустая строка.

batch

Необязательный атрибут элемента Boolean.

Указывает, поддерживается ли пакетный режим.

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

Значение по умолчанию — True.

batchTimeout

Необязательный атрибут элемента TimeSpan.

Указывает период ожидания в секундах для пакетной компиляции. Если за период ожидания компиляция не может быть выполнена, компилятор возвращается к режиму одиночной компиляции для текущей страницы.

Значение по умолчанию — "900" (15 минут).

debug

Необязательный атрибут элемента Boolean.

Указывает, следует ли при компиляции генерировать отладочные двоичные файлы вместо распространяемых.

По умолчанию используется значение False.

defaultLanguage

Необязательный атрибут элемента String.

Задает язык программирования по умолчанию (например "C#" или PERL) для использования в файлах динамической компиляции. Имена языков определены с использованием элемента compilers раздела system.codeDom или дочернего элемента compilers данного элемента (устаревший вариант).

По умолчанию используется значение "vb".

explicit

Необязательный атрибут элемента Boolean.

Указывает, следует ли устанавливать параметр компиляции explicit Microsoft Visual Basic. Если значение этого атрибута равно True, все переменные должны объявляться с использованием инструкции Dim, Private, Public или ReDim.

Значение по умолчанию — True.

maxBatchGeneratedFileSize

Необязательный атрибут элемента Int32.

Задает максимальный совокупный размер созданных исходных файлов (в КБ) для пакетной компиляции. В общем случае нерационально загружать в память огромную сборку, если на самом деле требуется гораздо меньшее число фрагментов. Этот ограничение помогает обеспечить разумный размер построений, чтобы приложение использовало механизм пакетной компиляции, не перегружая систему. Данный атрибут аналогичен атрибуту maxBatchSize.

По умолчанию используется значение 1000.

maxBatchSize

Необязательный атрибут элемента Int32.

Задает максимальное число страниц для пакетной компиляции.

По умолчанию используется значение 1000.

numRecompilesBeforeAppRestart

Необязательный атрибут элемента Int32.

Задает число динамических перекомпиляций ресурсов, которые могут произойти перед повторным запуском приложения. Этот атрибут поддерживается на глобальном уровне и уровне приложения, но не на уровне каталога.

ПримечаниеПримечание
ASP.NET увеличивает значение свойства NumRecompilesBeforeAppRestart каждый раз, когда сборка аннулируется, и ее не удается удалить.

По умолчанию используется значение 15.

optimizeCompilations

Необязательный атрибут элемента Boolean.

Указывает, будет ли динамическая компиляция выполнять повторную компиляцию всего сайта при изменении файла верхнего уровня. Файлы верхнего уровня включают файл Global.asax и все файлы из папок Bin и App_Code. Если установлено значение True, то перекомпилируются только измененные файлы.

По умолчанию используется значение False.

Дополнительные сведения см. в разделе Основные сведения о динамической компиляции ASP.NET.

strict

Необязательный атрибут элемента Boolean.

Указывает, следует ли включать параметр компиляции strict Visual Basic.

По умолчанию используется значение False.

targetFramework

Необязательный атрибут элемента String.

Задает версию платформы .NET Framework, для которой предназначен данный веб-сайт.

По умолчанию используется значение Null.

Если этот атрибут пропущен, целевая версия определяется другими параметрами в файле Web.config и пулом приложений IIS, с которым связан веб-сайт. Дополнительные сведения см. в разделах CompilationSection.TargetFramework и Настройка веб-проектов ASP.NET для нескольких версий .NET Framework.

tempDirectory

Необязательный атрибут элемента String.

Задает каталог, используемый для хранения временных файлов в процессе компиляции.

Значение по умолчанию — пустая строка ("").

Если в качестве значения задана пустая строка, и текущий процесс имеет необходимые разрешения на доступ, файлы сохраняются в каталоге %FrameworkInstallLocation%\ Temporary ASP.NET Files.

Обратите внимание, что доступ к папке %FrameworkInstallLocation%\ Temporary ASP.NET Files предоставляется только процессам, имеющим разрешения с уровнем доверия High.

urlLinePragmas

Необязательный атрибут элемента Boolean.

Указывает, следует ли компилятору использовать URL-адреса вместо физических путей.

По умолчанию используется значение False.

Дочерние элементы

Элемент

Описание

assemblies

Определяет коллекцию имен сборок, используемых во время компиляции ресурса ASP.NET.

buildProviders

Определяет коллекцию поставщиков построений, которые используются для компиляции пользовательских файлов ресурсов. Дополнительные сведения см. в описании класса BuildProvider.

codeSubDirectories

Определяет упорядоченную коллекцию подкаталогов, содержащих файлы, компилируемые во время выполнения.

compilers

Определяет коллекцию параметров компилятора.

ПримечаниеПримечание
В .NET Framework версии 2.0 и последующих версий этот элемент считается устаревшим. Вместо него следует использовать элемент compilers раздела system.codeDom.Однако использование дочернего элемента compilers элемента compilation допускается и переопределяет элемент compilers в разделе system.codedom.

expressionBuilders

Определяет коллекцию строк ресурсов, подлежащих использованию при компиляции. Строки ресурсов связывают префиксы с построителями выражений.

folderLevelBuildProviders

Определяет коллекцию поставщиков построений, которые используются для компиляции пользовательских файлов ресурсов в конкретных папках. Поставщики построения сопоставляются с расширениями файлов и используются для создания кода из файлов указанного типа. Дополнительные сведения см. в описании класса FolderLevelBuildProvider.

Родительские элементы

Элемент

Описание

configuration

Задает обязательный корневой элемент любого файла конфигурации, используемого средой CLR и приложениями .NET Framework.

system.web

Задает корневой элемент для параметров конфигурации ASP.NET в файле конфигурации и содержит элементы, предназначенные для настройки поведения веб-приложений ASP.NET.

Заметки

Элемент compilation настраивает все параметры, используемые ASP.NET для компиляции приложений.

В .NET Framework версии 2.0 дочерний элемент compilers элемента compilation не рекомендован к применению, вместо него следует использовать элемент compilers раздела system.codeDom. Однако использование дочернего элемента compilers элемента compilation допускается и переопределяет элемент compilers в разделе system.codedom.

Параметры по умолчанию

Следующий установленный по умолчанию элемент compilation не задается явно ни в файле Machine.config, ни в корневом файле Web.config. Однако он представляет собой конфигурацию по умолчанию, возвращаемую приложением. Элементы добавляются в коллекции assemblies, buildProviders и expressionBuilders корневого файла Web.config.

<compilation 
   tempDirectory="" 
   debug="false" 
   strict="false" 
   explicit="true" 
   batch="true" 
   batchTimeout="900" 
   maxBatchSize="1000" 
   maxBatchGeneratedFileSize="1000" 
   numRecompilesBeforeAppRestart="15" 
   defaultLanguage="vb" 
   urlLinePragmas="false" 
   assemblyPostProcessorType=""
>
   <assemblies>
       <clear />
   </assemblies>
   <buildProviders>
       <clear />
   </buildProviders>
   <expressionBuilders>
       <clear />
   </expressionBuilders>
</compilation>

Для .NET Framework версии 1.1 следующий элемент компиляции по умолчанию настраивается в файле Machine.config. Подобные параметры существуют в .NET Framework версии 1.0, за исключением номеров версий.

<compilation debug="false" explicit="true" defaultLanguage="vb">
   <compilers>
      <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="1"/>
      <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
      <compiler language="js;jscript;javascript" extension=".js" type="Microsoft.JScript.JScriptCodeProvider, Microsoft.JScript, Version=7.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
      <compiler language="VJ#;VJS;VJSharp" extension=".jsl" type="Microsoft.VJSharp.VJSharpCodeProvider, VJSharpCodeProvider, Version=7.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/></compilers>
   <assemblies>
      <add assembly="mscorlib"/>
      <add assembly="System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
      <add assembly="System.Web, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
      <add assembly="System.Data, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
      <add assembly="System.Web.Services, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
      <add assembly="System.Xml, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
      <add assembly="System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
      <add assembly="System.EnterpriseServices, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
      <add assembly="System.Web.Mobile, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
      <add assembly="*"/>
   </assemblies>
</compilation>

Пример

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

<configuration>
   <system.web>
      <compilation defaultLanguage="VB"
         targetFramework="4.0"
         debug="true"
         numRecompilesBeforeAppRestart="15">
         <assemblies>
            <add assembly="ADODB"/>
            <add assembly="*"/>
         </assemblies>

         <codeSubDirectories>
           <add directoryName="mySubDir1"/>
           <add directoryName="mySubDir2"/>
           <add directoryName="mySubDir3"/>
         </codeSubDirectories>

         <buildProviders>
            <buildProvider 
               extension=".mafx" type="BuildProviderType, 
                          BuildProviderAssembly"
            />
        </buildProviders>
     </compilation>
   </system.web>
</configuration>

Сведения об элементе

Обработчик раздела конфигурации

CompilationSection

Элемент конфигурации

Compilation

Настраиваемые расположения

Machine.config

Файл Web.config корневого уровня

Файл Web.config уровня приложения

Файл Web.config уровня виртуального или физического каталога

Требования

Microsoft IIS версии 5.0, 5.1 или 6.0

.NET Framework 1.0, 1.1, 2.0

Visual Studio 2003 или Visual Studio 2005

См. также

Задачи

Практическое руководство. Настройка отдельных каталогов с помощью параметров расположения

Пошаговое руководство. Отключение параметров конфигурации ASP.NET

Ссылки

Элемент system.web (схема параметров ASP.NET)

Элемент assemblies для элемента compilation (схема параметров ASP.NET)

Элемент buildProviders для элемента compilation (схема параметров ASP.NET)

Элемент codeSubDirectories для элемента compilation (схема параметров ASP.NET)

Элемент compilers для элемента compilation (схема параметров ASP.NET)

Элемент expressionBuilders для элемента compilation (схема параметров ASP.NET)

Элемент configuration (схема общих параметров)

System.Configuration

System.Web.Configuration

CompilationSection

Compilation

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

Общие сведения о компиляции в ASP.NET

Общие сведения о синтаксисе веб-страниц ASP.NET

Иерархия и наследование файла конфигурации ASP.NET

Настройка обеспечения безопасности ASP.NET

Сценарии конфигурации ASP.NET

Настройка веб-проектов ASP.NET для нескольких версий .NET Framework

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

Общие параметры конфигурации (ASP.NET)

Параметры конфигурации ASP.NET

Администрирование веб-сайта ASP.NET

Файлы конфигурации ASP.NET

Конфигурационный API-интерфейс настройки ASP.NET