Elemento compilation (schema delle impostazioni ASP.NET)

Configura tutte le impostazioni di compilazione utilizzate in ASP.NET per compilare le applicazioni.

<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>

Attributi ed elementi

Nelle sezioni seguenti vengono illustrati attributi, elementi figlio e padre.

Attributi

Attribute

Oggetto di descrizione

assemblyPostProcessorType

Attributo String facoltativo.

Specifica un passaggio di compilazione di elaborazione conclusiva per un assembly facendo riferimento a un post processore di assembly. Utilizzare il formato "assembly post processor, assembly". Il post processore di assembly deve implementare l'interfaccia IAssemblyPostProcessor. L'utilizzo di questo metodo di elaborazione conclusiva comporta il debug nella compilazione, di cui è possibile eseguire l'override quando si specifica la modalità di distribuzione.

Questo attributo è nuovo in .NET Framework versione 2.0.

Il valore predefinito è una stringa vuota.

batch

Attributo Boolean facoltativo.

Indica se è supportata la modalità batch.

Se l'impostazione è True, elimina il ritardo provocato dalla compilazione necessaria quando si accede a un file per la prima volta. Quando questo attributo è impostato su True, tramite ASP.NET tutti i file non compilati in modalità batch vengono precompilati. In questo modo la prima volta il ritardo risulterà ancora maggiore. ma, dopo il ritardo iniziale, verrà eliminato al successivo accesso al file.

Il valore predefinito è True.

batchTimeout

Attributo TimeSpan facoltativo.

Specifica il periodo di timeout, in secondi, per la compilazione batch. Se la compilazione non può essere completata entro il periodo di timeout previsto, il compilatore torna alla modalità di compilazione singola per la pagina corrente.

Il valore predefinito è "900" (15 minuti).

debug

Attributo Boolean facoltativo.

Specifica se compilare i dati binari di debug invece di quelli della versione finale.

Il valore predefinito è False.

defaultLanguage

Attributo String facoltativo.

Specifica il linguaggio di programmazione predefinito, ad esempio "C#" o "PERL", da utilizzare nei file di compilazione dinamica. I nomi dei linguaggi vengono definiti mediante l'elemento compilers della sezione system.codeDom oppure mediante l'elemento figlio compilers di questo elemento (obsoleto).

Il valore predefinito è "vb".

explicit

Attributo Boolean facoltativo.

Specifica se impostare l'opzione di compilazione explicit di Microsoft Visual Basic. Se l'impostazione è True, tutte le variabili devono essere dichiarate mediante un'istruzione Dim, Private, Public o ReDim.

Il valore predefinito è True.

maxBatchGeneratedFileSize

Attributo Int32 facoltativo.

Specifica la dimensione massima combinata (in KB) dei file di origine generati per ogni compilazione in batch. In generale è preferibile non caricare in memoria un assembly di grosse dimensioni quando è necessario un numero inferiore di bit. Questo limite garantisce che le dimensioni degli assembly siano comprese in un intervallo ragionevole in modo da consentire all'applicazione di usufruire dei vantaggi del meccanismo di batch senza sovraccaricare il sistema. È simile a maxBatchSize.

Il valore predefinito è 1000.

maxBatchSize

Attributo Int32 facoltativo.

Specifica il numero massimo di pagine per compilazione in batch.

Il valore predefinito è 1000.

numRecompilesBeforeAppRestart

Attributo Int32 facoltativo.

Specifica il numero di ricompilazioni dinamiche di risorse possibili prima del riavvio dell'applicazione. Questo attributo è supportato a livello di applicazione e globale ma non a livello di directory.

NotaNota
ASP.NET aumenta il valore della proprietà NumRecompilesBeforeAppRestart ogni volta che un assembly viene invalidato e la sua eliminazione ha esito negativo.

Il valore predefinito è 15.

optimizeCompilations

Attributo Boolean facoltativo.

Specifica se la compilazione dinamica ricompilerà un sito intero in caso di modifica di un file di primo livello. I file di primo livello includono il file Global.asax e tutti i file nelle cartelle Bin e App_Code. Se True, vengono ricompilati solo i file modificati.

Il valore predefinito è False.

Per ulteriori informazioni, vedere Informazioni sulla compilazione dinamica ASP.NET.

strict

Attributo Boolean facoltativo.

Specifica se attivare l'opzione di compilazione strict di Visual Basic.

Il valore predefinito è False.

targetFramework

Attributo String facoltativo.

Specifica la versione di .NET Framework di destinazione per il sito Web.

Il valore predefinito è Null.

Se viene omesso questo attributo, la versione di destinazione è determinata dalle altre impostazioni nel file Web.config e dal pool di applicazioni IIS al quale il sito Web è associato. Per ulteriori informazioni, vedere CompilationSection.TargetFramework e Selezione di .NET Framework come destinazione dei progetti Web.

tempDirectory

Attributo String facoltativo.

Specifica la directory da utilizzare per l'archiviazione temporanea dei file durante la compilazione.

Il valore predefinito è una stringa vuota ("").

Nel caso di una stringa vuota e se il processo corrente ha le autorizzazioni di accesso necessarie, i file vengono archiviati nella directory %FrameworkInstallLocation%\ Temporary ASP.NET Files.

Si noti che solo i processi con autorizzazioni ad elevata attendibilità possono accedere alla directory %FrameworkInstallLocation%\ Temporary ASP.NET Files.

urlLinePragmas

Attributo Boolean facoltativo.

Specifica se il compilatore debba utilizzare gli URL invece dei percorsi fisici.

Il valore predefinito è False.

Elementi figlio

Elemento

Oggetto di descrizione

assemblies

Definisce un insieme di nomi di assembly utilizzati durante la compilazione di una risorsa ASP.NET.

buildProviders

Definisce un insieme di provider di generazione utilizzati per compilare file di risorse personalizzati. Per ulteriori informazioni, vedere la classe BuildProvider.

codeSubDirectories

Definisce un insieme ordinato di sottodirectory contenenti i file compilati in fase di esecuzione.

compilers

Definisce un insieme di opzioni del compilatore.

NotaNota
In .NET Framework 2.0 e versioni successive questo elemento è classificato come deprecato a favore dell'elemento compilers della sezione system.codeDom.L'utilizzo dell'elemento figlio compilers dell'elemento compilation continua, tuttavia, a essere valido e determina l'override dell'elemento compilers situato nella sezione system.codedom.

expressionBuilders

Definisce un insieme di stringhe di risorsa da utilizzare durante la compilazione. Le stringhe di risorsa associano i prefissi ai generatori di espressioni.

folderLevelBuildProviders

Definisce un insieme di provider di generazione utilizzati per compilare file di risorse in cartelle specifiche. Provider di compilazione sono mappati alle estensioni di file e sono utilizzati per generare un codice da file del tipo specificato. Per ulteriori informazioni, vedere la classe FolderLevelBuildProvider.

Elementi padre

Elemento

Oggetto di descrizione

configuration

Specifica l'elemento di primo livello necessario in ciascun file di configurazione utilizzato in Common Language Runtime e nelle applicazioni .NET Framework.

system.web

Specifica l'elemento di primo livello per le impostazioni di configurazione ASP.NET in un file di configurazione e contiene gli elementi per la configurazione del comportamento di applicazioni Web ASP.NET.

Note

L'elemento compilation configura tutte le impostazioni di compilazione utilizzate in ASP.NET per compilare le applicazioni.

In .NET Framework versione 2.0 l'elemento figlio compilers dell'elemento compilation è classificato come obsoleto a favore dell'elemento compilers della sezione system.codeDom. L'utilizzo dell'elemento figlio compilers dell'elemento compilation continua, tuttavia, a essere valido e determina l'override dell'elemento compilers situato nella sezione system.codedom.

Configurazione predefinita

L'elemento compilation predefinito riportato di seguito non viene configurato in modo esplicito nel file Machine.config o nel file Web.config radice. Si tratta, tuttavia, della configurazione predefinita restituita dall'applicazione. Gli elementi vengono aggiunti agli insiemi assemblies, buildProviders ed expressionBuilders nel file Web.config a livello di radice.

<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>

Nel file Machine.config in .NET Framework versione 1.1 viene configurato l'elemento di compilazione predefinito riportato di seguito. Impostazioni analoghe esistono in .NET Framework versione 1.0 fatta eccezione per i numeri di versione.

<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>

Esempio

Nell'esempio di codice riportato di seguito viene illustrato come configurare le impostazioni di compilazione per un'applicazione.

<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>

Informazioni sull'elemento

Gestore della sezione di configurazione

CompilationSection

Membro di configurazione

Compilation

Percorsi configurabili

Machine.config

Web.config a livello di radice

Web.config a livello di applicazione

Web.config a livello di directory fisica o virtuale

Requisiti

Microsoft Internet Information Services (IIS) versione 5.0, 5.1 o 6.0

.NET Framework 1.0, 1.1, 2.0

Visual Studio 2003 o Visual Studio 2005

Vedere anche

Attività

Procedura: configurare directory specifiche utilizzando impostazioni di percorso

Procedura: bloccare le impostazioni di configurazione di ASP.NET

Riferimenti

Elemento system.web (schema delle impostazioni ASP.NET)

Elemento assemblies per compilation (schema delle impostazioni ASP.NET)

Elemento buildProviders per compilation (schema delle impostazioni ASP.NET)

Elemento codeSubDirectories per compilation (schema delle impostazioni ASP.NET)

Elemento compilers per compilation (schema delle impostazioni ASP.NET)

Elemento expressionBuilders per compilation (schema delle impostazioni ASP.NET)

Elemento configuration (schema delle impostazioni generali)

System.Configuration

System.Web.Configuration

CompilationSection

Compilation

Concetti

Cenni preliminari sulla compilazione in ASP.NET

Cenni preliminari sulla sintassi delle pagine Web ASP.NET

Gerarchia ed ereditarietà dei file di configurazione di ASP.NET

Protezione della configurazione di ASP.NET

Scenari di configurazione ASP.NET

Selezione di .NET Framework come destinazione dei progetti Web

Altre risorse

Impostazioni di configurazione generali (ASP.NET)

Impostazioni di configurazione di ASP.NET

Amministrazione di siti Web ASP.NET

File di configurazione ASP.NET

API di configurazione di ASP.NET