Condividi tramite


Passaggio 1: esame dei file di configurazione

È possibile configurare le associazioni di assembly a livelli diversi in base a tre file XML:

  • File di configurazione dell'applicazione.

  • File dei criteri editore.

  • File di configurazione del computer.

In questi file viene utilizzata la stessa sintassi e vengono fornite informazioni, quali i reindirizzamenti delle associazioni, la posizione del codice e le modalità di associazione per determinati assembly. Ogni file di configurazione può contenere un elemento <assemblyBinding> che reindirizza il processo di associazione. Gli elementi figlio dell'elemento <assemblyBinding> includono l'elemento <dependentAssembly>. Gli elementi figlio dell'elemento <dependentAssembly> includono l'elemento <assemblyIdentity>, l'elemento <bindingRedirect> e l'elemento <codeBase>.

NotaNota

Le informazioni di configurazione possono essere individuate nei tre file di configurazione, ma non tutti gli elementi sono validi in tutti i file di configurazione.Le informazioni relative alla modalità di associazione e al percorso privato, ad esempio, possono essere contenute solo nel file di configurazione dell'applicazione.Per un elenco completo delle informazioni contenute in ciascun file, vedere Configurazione di applicazioni.

File di configurazione dell'applicazione

Common Language Runtime controlla innanzitutto se il file di configurazione dell'applicazione contiene informazioni che eseguono l'override delle informazioni relative alla versione memorizzate nel manifesto dell'assembly chiamante. Il file di configurazione dell'applicazione può essere distribuito con un'applicazione, ma non è necessario per l'esecuzione dell'applicazione. In genere, il recupero di questo file avviene quasi istantaneamente. Tuttavia, se la base applicativa risiede su un computer remoto, come nel caso di applicazioni basate su Web utilizzate con Internet Explorer, è necessario eseguire il download del file di configurazione.

Per gli eseguibili client, il file di configurazione dell'applicazione risiede nella stessa directory dell'eseguibile dell'applicazione e ha lo stesso nome base dell'eseguibile con estensione CONFIG. Il file di configurazione per C:\Programmi\Myapp\Myapp.exe è, ad esempio, C:\Programmi\Myapp\Myapp.exe.config. In un scenario basato sul browser, il file HTML deve utilizzare l'elemento**<link>** per puntare in modo esplicito al file di configurazione.

Nel codice seguente viene fornito un semplice esempio di file di configurazione dell'applicazione. Nell'esempio viene aggiunto un oggetto TextWriterTraceListener all'insieme Listeners di per attivare la registrazione di informazioni di debug in un file.

<configuration>
   <system.diagnostics>
      <trace useGlobalLock="false" autoflush="true" indentsize="0">
         <listeners>
            <add name="myListener" type="System.Diagnostics.TextWriterTraceListener, system version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" initializeData="c:\myListener.log" />
         </listeners>
      </trace>
   </system.diagnostics>
</configuration>

File dei criteri editore

Dopo aver esaminato il file di configurazione dell'applicazione, il runtime esamina il file dei criteri editore eventualmente disponibile. I file dei criteri editore vengono distribuiti da un editore di componenti come correzione o aggiornamento di un componente condiviso e contengono informazioni di compatibilità emesse dall'editore del componente condiviso per indirizzare il riferimento di un assembly a una nuova versione. Diversamente dai file di configurazione dell'applicazione e del computer, i file dei criteri editore sono contenuti nel relativo assembly, che deve essere installato nella Global Assembly Cache.

Gli elementi seguenti sono un esempio di un file di configurazione dei criteri editore:

<configuration>
    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">

            <dependentAssembly>
                <assemblyIdentity name="asm6" publicKeyToken="c0305c36380ba429" /> 
                <bindingRedirect oldVersion="3.0.0.0" newVersion="2.0.0.0"/>  
            </dependentAssembly>

        </assemblyBinding>
    </runtime>
</configuration>

Per creare un assembly, è possibile utilizzare lo strumento Al.exe (Assembly Linker) con un comando analogo al seguente:

Al.exe /link:asm6.exe.config /out:policy.3.0.asm6.dll /keyfile: compatkey.dat /v:3.0.0.0

compatkey.dat è un file di chiave con nome sicuro. Questo comando crea un assembly con nome sicuro che è possibile inserire nella Global Assembly Cache.

NotaNota

I criteri editore hanno effetto su tutte le applicazioni in cui viene utilizzato un componente condiviso.

Il file di configurazione dei criteri editore esegue l'override delle informazioni relative alla versione ottenute dall'applicazione, ovvero dal manifesto dell'assembly o dal file di configurazione dell'applicazione. Se nel file di configurazione dell'applicazione non esiste alcuna istruzione per il reindirizzamento della versione specificata nel manifesto dell'assembly, il file dei criteri editore esegue l'override della versione specificata nel manifesto, altrimenti esegue l'override di quella specificata nel file di configurazione dell'applicazione.

Il file dei criteri editore viene utilizzato quando un componente condiviso viene aggiornato e la nuova versione deve essere utilizzata da tutte le applicazioni che utilizzano tale componente. Le impostazioni del file dei criteri editore eseguono l'override di quelle del file di configurazione dell'applicazione, a meno che nel file di configurazione dell'applicazione non sia attivata la modalità sicura.

Modalità sicura

I file dei criteri editore vengono in genere installati in modo esplicito durante l'installazione di un service pack o di un aggiornamento. Se si verifica un problema con il componente condiviso aggiornato, è possibile ignorare le impostazioni di override specificate nel file dei criteri editore attivando la modalità sicura. La modalità sicura è determinata dall'elemento <publisherPolicy apply="yes |no"/>, che si trova solo nel file di configurazione dell'applicazione. L'elemento specifica se le informazioni di configurazione dei criteri editore devono essere rimosse dal processo di associazione.

È possibile impostare la modalità sicura per l'intera applicazione o per determinati assembly, disattivando quindi i criteri per tutti gli assembly che costituiscono l'applicazione o solo per alcuni. Per applicare i criteri editore solo a determinati assembly che costituiscono un'applicazione, impostare <publisherPolicy apply=no/> e specificare gli assembly utilizzando l'elemento <dependentAssembly>. Per applicare i criteri a tutti gli assembly che costituiscono un'applicazione, impostare <publisherPolicy apply=no/> senza utilizzare gli elementi relativi agli assembly dipendenti. Per ulteriori informazioni sulla configurazione, vedere File di configurazione.

File di configurazione del computer

Dopo aver esaminato i file di configurazione dell'applicazione e dei criteri editore, il runtime esamina il file di configurazione del computer, denominato Machine.config e posizionato sul computer locale nella sottodirectory Config della directory radice nella quale è installato il runtime. Il file può essere utilizzato dagli amministratori per specificare le restrizioni per l'associazione di assembly da applicare localmente al computer in cui il file risiede. Le impostazioni presenti nel file di configurazione del computer hanno la precedenza su tutte le impostazioni di configurazione. Tuttavia non tutte le impostazioni di configurazione vengono inserite in questo file. La versione determinata dal file dei criteri dell'amministratore, ad esempio, è quella finale e non ne può essere eseguito l’override da parte del file di configurazione del computer. Le impostazioni di override specificate nel file Machine.config hanno effetto su tutte le applicazioni. Per ulteriori informazioni sui file di configurazione, vedere File di configurazione.

Vedere anche

Concetti

Come il runtime individua gli assembly

Passaggio 2: controllo di assembly a cui è stato fatto riferimento in precedenza

Passaggio 3: controllo della Global Assembly Cache

Passaggio 4: individuazione dell'assembly mediante basi di codice o ricerca

Riferimenti di assembly parziali