Configurazione per applicazione

La configurazione per applicazione reindirizza la dipendenza di un'applicazione specifica da una versione di un assembly side-by-side a un'altra versione dell'assembly. Una configurazione per applicazione può diventare necessaria se l'operazione corretta di un'applicazione specifica richiede una versione dell'assembly diversa rispetto alla versione normalmente specificata come configurazione predefinita o configurazione del server di pubblicazione. Ad esempio, un aggiornamento globale della versione dell'assembly da parte del server di pubblicazione potrebbe correggere l'assembly ma interrompere questa particolare applicazione. In questo caso, la configurazione per applicazione può essere usata per consentire all'applicazione di continuare a eseguire con la versione precedente dell'assembly.

A partire da Windows Server 2003, la configurazione per applicazione esegue sempre l'override della configurazione predefinita in base a ogni applicazione. La configurazione per applicazione esegue l'override della configurazione del server di pubblicazione in base a ogni applicazione solo se il file di configurazione dell'applicazione specifica apply="no" in publisherPolicy ed è presente una voce corrispondente nel database di compatibilità dell'applicazione.

Nota

In Windows XP la configurazione per applicazione esegue l'override della configurazione predefinita e della configurazione del server di pubblicazione in base a ogni applicazione. Per informazioni, vedere Configurazione per applicazione in Windows XP.

 

A partire da Windows Server 2003, una configurazione per applicazione eseguirà l'override di una configurazione del server di pubblicazione se il file di configurazione dell'applicazione specifica apply="sì" in publisherPolicy e il flag EnableAppConfig viene impostato per l'applicazione nel database di compatibilità dell'applicazione. Questa funzionalità consente di eseguire l'override di una configurazione del server di pubblicazione usando una configurazione per applicazione che consente l'esecuzione dell'applicazione in Safemode. Per altre informazioni sul database di compatibilità dell'applicazione e su Safemode, vedere Windows Application Compatibility Toolkit. È possibile ottenere Windows Application Compatibility Toolkit da https://www.microsoft.com/downloads.

Nota

Se si invieranno componenti con un file di configurazione dell'applicazione (file .config) che specifica apply="no" in publisherPolicy, la generazione del contesto di attivazione avrà esito negativo. La configurazione per applicazione verrà ignorata se si invieranno componenti con un file .config che specifica applica="sì" in publisherPolicy.

 

Gli amministratori dell'applicazione possono implementare una configurazione per applicazione creando e installando i file di configurazione dell'applicazione e aggiornando il database di compatibilità dell'applicazione. Il file di configurazione dell'applicazione deve quindi essere distribuito e installato nella stessa cartella del file eseguibile dell'applicazione. Per un elenco dello schema file, vedere Schema file di configurazione dell'applicazione. Il database di compatibilità dell'applicazione deve essere distribuito come descritto in Application Compatibility Toolkit.

Nota

Se l'applicazione viene eseguita in Safemode, non riceverà correzioni di sicurezza importanti o correzioni di bug che il server di pubblicazione dell'assembly potrebbe generare come file di configurazione del server di pubblicazione. Un'applicazione che usa la configurazione per applicazione può pertanto rimanere non sicura o continuare a funzionare in modo errato anche dopo l'applicazione di un nuovo assembly con queste correzioni al sistema. Per questo motivo, gli sviluppatori di applicazioni non devono mai inviare un'applicazione con una configurazione per applicazione. La configurazione per applicazione deve essere usata solo dagli amministratori aziendali come correzione temporanea quando l'applicazione viene interrotta da una configurazione del server di pubblicazione. In questo caso, la soluzione permanente è che gli sviluppatori dell'assembly e gli sviluppatori dell'applicazione dovranno collaborare per garantire che gli assembly con la configurazione del server di pubblicazione siano completamente compatibili con le versioni precedenti.

 

Di seguito è riportato un esempio di file di configurazione dell'applicazione. Per altre informazioni, vedere File di configurazione dell'applicazione.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<configuration>
 <windows>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
   <assemblyIdentity  processorArchitecture="X86" name="Microsoft.Windows.mysampleApp" type="win32" version="1.0.0.0"/>
   <publisherPolicy apply="no"/>                     
   <dependentAssembly>
    <assemblyIdentity type="win32" processorArchitecture="x86" name="Microsoft.Windows.SampleAssembly" publicKeyToken="0000000000000000"/>
    <bindingRedirect oldVersion="2.0.0.0" newVersion="2.0.1.0"/>
   </dependentAssembly>
  </assemblyBinding>
 </windows>
</configuration>

L'amministratore dell'applicazione deve aggiungere le voci necessarie al database di compatibilità dell'applicazione. Scaricare e installare Windows Application Compatibility Toolkit 2.6 da https://www.microsoft.com/downloads. Creare un nuovo database personalizzato o aggiornare il database esistente usando l'amministratore di compatibilità come descritto nel toolkit. La correzione della compatibilità che si vuole scegliere per il livello di compatibilità per l'applicazione è EnableAppConfig. È sempre necessario testare le applicazioni prima di installare un nuovo database di compatibilità.