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

Обновлен: Ноябрь 2007

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

Элемент <configuration>
  Элемент system.web (схема параметров ASP.NET)
    Элемент compilation (схема параметров 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]"
   assemblyPostProcessorType="assembly post processor, assembly"
>
   <assemblies>...</assemblies> 
   <buildproviders>...</buildproviders>
   <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.

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

s10awwz0.alert_note(ru-ru,VS.90).gifПримечание.
ASP.NET увеличивает значение свойства NumRecompilesBeforeAppRestart каждый раз, когда сборка аннулируется, и ее не удается удалить.

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

strict

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

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

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

tempDirectory

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

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

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

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

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

urlLinePragmas

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

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

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

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

Элемент

Описание

assemblies

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

buildproviders

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

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

codeSubDirectories

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

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

compilers

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

s10awwz0.alert_note(ru-ru,VS.90).gifПримечание.
В .NET Framework версии 2.0 этот элемент считается устаревшим, и вместо него следует использовать элемент compilers раздела system.codeDom. Однако использование дочернего элемента compilers элемента compilation остается возможным, и при этом переопределяется элемент compilers, находящийся в разделе system.codedom.

expressionBuilders

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

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

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

Элемент

Описание

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>

Следующий элемент compilation задан по умолчанию в файле Machine.config в .NET Framework версии 1.1. Сходные настройки, за исключением номеров версий, присутствуют в .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"
         debug="true"
         numRecompilesBeforeAppRestart="15">
         <compilers>
            <compiler 
               language="VB;VBScript"
               extension=".cls"
               type="Microsoft.VisualBasic.VBCodeProvider,system,     
                     Version=1.0.5000.0, Culture=neutral, 
                     PublicKeyToken=b77a5c561934e089"/>
            <compiler 
               language="C#;Csharp"
               extension=".cs"
               type="Microsoft.CSharp.CSharpCodeProvider,system, 
                     Version=1.0.5000.0,  Culture=neutral, 
                     PublicKeyToken=b77a5c561934e089"/>
         </compilers>
         <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

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

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

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

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

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

Сценарии конфигурации 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

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