File di configurazione dell'applicazione

Un file di configurazione dell'applicazione è un file XML usato per controllare l'associazione di assembly. Può reindirizzare un'applicazione dall'uso di una versione di un assembly side-by-side a un'altra versione dello stesso assembly. Questa operazione viene chiamata configurazione per applicazione. Un file di configurazione dell'applicazione si applica solo a un manifesto dell'applicazione specifico e agli assembly dipendenti. I componenti isolati compilati con un manifesto ISOLATIONAWARE_MANIFEST_RESOURCE_ID incorporato richiedono un file di configurazione dell'applicazione separato. I manifesti gestiti con CreateActCtx richiedono un file di configurazione dell'applicazione separato.

Il reindirizzamento specificato da un file di configurazione dell'applicazione può eseguire l'override delle versioni dell'assembly specificate dai manifesti dell'applicazione e dai file di configurazione dell'editore. Ad esempio, se un file di configurazione dell'editore specifica che tutti i riferimenti a un assembly devono essere reindirizzati dalla versione 1.0.0.0 alla versione 1.1.0.0, è possibile usare un file di configurazione dell'applicazione per reindirizzare una determinata applicazione per l'uso della versione 1.0.0.0. Un file di configurazione dell'applicazione si applica solo al manifesto dell'applicazione e agli assembly dipendenti specificati.

Per un elenco completo dello schema XML, vedere Schema del file di configurazione dell'applicazione.

I file di configurazione dell'applicazione hanno gli elementi e gli attributi illustrati nella tabella seguente.

Elemento Attributi Necessario
configurazione
windows
publisherPolicy
Applicare
Runtime No
assemblyBinding
Sondaggio No
privatePath
Dipendenza No
dependentAssembly
Assemblyidentity
type
nome
language No
processorArchitecture
version
Publickeytoken No
bindingRedirect
oldVersion
newVersion

Percorso file

I file di configurazione dell'applicazione devono essere installati nello stesso percorso del manifesto dell'applicazione dell'applicazione.

Sintassi del nome file

Il nome di un file di configurazione dell'applicazione è il nome dell'eseguibile dell'applicazione seguito da .config.

Ad esempio, un file di configurazione dell'applicazione che fa riferimento a Example.exe o Example.dll userebbe la sintassi del nome file illustrata nell'esempio seguente. È possibile omettere il campo per <l'ID> risorsa se si installa il file di configurazione come file separato o se l'ID risorsa è 1.

example.exe.<ID> risorsa.config

example.dll.<ID> risorsa.config

Elementi

I nomi di elementi e attributi fanno distinzione tra maiuscole e minuscole. I valori di elementi e attributi non fanno distinzione tra maiuscole e minuscole, ad eccezione del valore dell'attributo type.

configurazione

Elemento contenitore per gli elementi windows e runtime di un file di configurazione dell'applicazione. Obbligatorio.

windows

Include le parti del file di configurazione dell'applicazione che si applicano al reindirizzamento degli assembly Win32.

Nota

L'autore di un'applicazione non deve includere un file di configurazione con un sottoelemento windows come parte dell'applicazione. Ciò può essere consentito se l'unico scopo del file di configurazione è abilitare la funzionalità privatePath di un elemento di probe . L'elemento di probe non è disponibile nei sistemi precedenti a Windows Server 2008 R2 e Windows 7.

publisherPolicy

Specifica se applicare i criteri di pubblicazione.

Questo elemento include gli attributi illustrati nella tabella seguente.

Attributo Descrizione
Applicare Il valore "sì" applica i criteri dell'editore. Si tratta dell'impostazione predefinita. Il valore "no" non applica i criteri dell'editore.

runtime

Include le parti del file di configurazione dell'applicazione che si applicano al reindirizzamento degli assembly .NET.

assemblyBinding

Include le informazioni di reindirizzamento per l'applicazione e l'assembly interessati da questo file di configurazione dell'applicazione. Il primo sottoelemento di assemblyBinding deve essere un assemblyIdentity che identifica l'applicazione.

A partire da Windows Server 2008 R2 e Windows 7, un elemento assemblyBinding può includere un sottoelemento di probe .

esecuzione del probe

Sottoelemento facoltativo di un elemento assemblyBinding che estende la ricerca di assembly in directory aggiuntive. Le directory aggiuntive non devono essere sottodirectory della directory dell'assembly.

Nota

Questo elemento non è disponibile nei sistemi precedenti a Windows Server 2008 R2 e Windows 7 e può essere usato solo all'interno di un elemento windows .

Questo elemento include gli attributi illustrati nella tabella seguente.

Attributo Descrizione
privatePath Specifica i percorsi relativi delle sottodirectory della directory di base dell'applicazione che potrebbero contenere assembly. È possibile specificare un massimo di nove percorsi di sottodirectory. Delimita ogni percorso di sottodirectory con un punto e virgola.

È possibile usare l'identificatore speciale a due punti in un percorso per indicare la directory padre della directory corrente. Non è possibile specificare più di due livelli sopra la directory corrente usando i punti doppio. Non usare i tre punti. Ad esempio, un'applicazione che usa l'elemento di prova seguente controlla directory aggiuntive per un assembly.

<probing privatePath="bin;..\bin2\subbin;bin3"/>

dependency

Elemento contenitore per almeno un dipendenteAssembly. Ogni dipendenteAssembly può trovarsi all'interno di una dipendenza esatta. Questo elemento non ha attributi. Facoltativa.

dependentAssembly

Il primo sottoelemento deve essere un elemento assemblyIdentity che identifica l'assembly side-by-side reindirizzato dal file di configurazione dell'applicazione. Un oggetto dependentAssembly non ha attributi.

assemblyIdentity

Come primo sottoelemento di un elemento assemblyBinding , assemblyIdentity descrive e identifica in modo univoco un'applicazione. Il file di configurazione dell'applicazione reindirizza l'associazione di questa applicazione agli assembly side-by-side. Ad esempio, l'assemblyIdentity seguente indica che il file di configurazione dell'applicazione influisce sull'associazione dell'applicazione mysampleApp agli assembly side-by-side. Gli assembly reindirizzati verranno identificati in un assembly dipendenteAssembly.

<assemblyIdentity processorArchitecture="X86" name="Microsoft.Windows.mysampleApp" type="win32" version="1.0.0.0"/>

Come primo sottoelemento di un elemento dipendenteAssembly , assemblyIdentity descrive un assembly side-by-side su cui dipende l'applicazione. Il file di configurazione dell'applicazione riconfigura l'identità di questo assembly necessario. Ad esempio, l'assemblyIdentity e bindingRedirect seguente riconfigura una dipendenza da Microsoft.Windows.SampleAssembly dalla versione 2.0.0.0 alla versione 2.1.0.0.

<dependency>
      <dependentAssembly>
         <assemblyIdentity type="win32"
          name="Microsoft.Windows.SampleAssembly"
          processorArchitecture="x86"
          publicKeyToken="0000000000000000"/>
         <bindingRedirect oldVersion="2.0.0.0" newVersion="2.1.0.0"/>
      </dependentAssembly>
</dependency>

Si noti che ogni assemblyIdentity incluso in un assemblyAssembly dipendente deve corrispondere esattamente all'assemblyIdentity nel manifesto dell'assembly.

L'elemento assemblyIdentity ha gli attributi seguenti. Non ha sottoelementi.

Attributo Descrizione
type Il valore deve essere win32 (minuscolo). Obbligatorio.
nome L'attributo name identifica l'applicazione interessata dal file di configurazione dell'applicazione o dall'assembly da reindirizzare. Usare il formato seguente per il nome: Organization.Division.Name. Obbligatorio. Ad esempio: Microsoft.Windows.MysampleApp o Microsoft.Windows.MysampleAsm.
language Identifica la lingua. Facoltativa. Per un assemblyIdentity che fa riferimento a un assembly, se l'assembly è specifico del linguaggio, specificare il codice del linguaggio DHTML. Se l'assembly è destinato all'uso globale (lingua neutrale) imposta il valore come "*".
processorArchitecture Specifica il processore che esegue l'applicazione.
version Specifica la versione dell'applicazione o dell'assembly. Usare la sintassi della versione a quattro parti: mmmm.nnnn.oooo.pppp. Obbligatorio.
Publickeytoken Per un assemblyIdentity che fa riferimento a un assembly, una stringa esadecimale a 16 caratteri che rappresenta gli ultimi 8 byte dell'hash SHA-1 della chiave pubblica in cui viene firmato l'assembly. La chiave pubblica usata per firmare il catalogo deve essere di 2048 bit o successiva. Obbligatorio per tutti gli assembly side-by-side condivisi.

bindingRedirect

L'elemento bindingRedirect contiene informazioni di reindirizzamento per l'associazione dell'assembly. Ogni bindingRedirect deve essere incluso in un'unica associazione dipendenteAssembly. La sintassi della versione quattro parti della nuova versione e della versione precedente deve specificare le stesse versioni principali e secondarie.

Questo elemento ha gli attributi visualizzati nella tabella seguente.

Attributo Descrizione
oldVersion Specifica la versione dell'assembly sottoposto a override e reindirizzamento. Usare la sintassi della versione a quattro parti nnnnn.nnnnn.nnnnn.nnn. Specificare un intervallo di versioni in base a un trattino senza spazi. Ad esempio, 2.14.3.0 o 2.14.3.0 2.16.0.0. Obbligatorio.
newVersion Specifica la versione dell'assembly sostitutivo. Usare la sintassi della versione a quattro parti nnnnn.nnnnn.nnnnn.nnn.

Commenti

I file di configurazione dell'applicazione non specificano i file.

Esempio

<bindingRedirect oldVersion="1.0.0.0" newVersion="1.0.10.0"/>
<bindingRedirect oldVersion="1.0.50.2011-1.0.60.65535" newVersion="1.0.70.0"/>