File di configurazione di attivazione
Un'applicazione che fornisce un modello di estensibilità gestito può richiedere che le estensioni vengano eseguite con una particolare versione del runtime di .NET Framework, specificando tale versione in un file di configurazione dell'applicazione o in un file di configurazione host. Prima di .NET Framework versione 4, l'unico modo per scrivere estensioni con una versione successiva del runtime era fornire un file di configurazione diverso per l'applicazione. Sfortunatamente, ciò aveva la conseguenza indesiderabile di forzare tutte le estensioni a utilizzare il runtime più nuovo.
I file di configurazione di attivazione forniscono una soluzione alternativa per lo scenario specifico nel quale l'autore dell'estensione utilizza il modello di estensibilità di un'applicazione come piattaforma e controlla totalmente tutte le estensioni che vengono caricate. In tale scenario, è ragionevole consentire all'autore dell'estensione di decidere quale versione del runtime viene caricata e attivata.
Ad esempio, potrebbe essere richiesto di utilizzare .NET Framework 4 per creare un set di snap-in di Microsoft Management Console (MMC) per personalizzare l'interfaccia utente di una console di gestione, su computer in cui MMC specifica l'attivazione del runtime di .NET Framework versione 2.0. Non è possibile sostituire direttamente le informazioni di attivazione per MMC, tuttavia è possibile utilizzare una variabile di ambiente per specificare il percorso di un file di configurazione per l'attivazione che ne esegue l'override per una particolare console, in modo che il runtime di .NET Framework 4 venga attivato quando viene avviata la console.
Specifica di un file di configurazione di attivazione
I nomi dei file di configurazione di attivazione seguono lo stesso modello dei nomi dei file di configurazione dell'applicazione, ma utilizzano l'estensione .activation_config. Ad esempio, un'applicazione denominata MyApp.exe dispone di un file di configurazione dell'applicazione denominato MyApp.exe.config e di un file di configurazione di attivazione denominato MyApp.exe.activation_config.
I file di configurazione di attivazione possono contenere qualsiasi elemento dei file di configurazione, tuttavia gli unici elementi analizzati sono quelli che vengono utilizzati in genere per l'attivazione, come riportato di seguito.
Elementi nella sezione <startup>.
Elementi <gcServer>, <appdomainResourceMonitoring>e <etwEnable> nella sezione <runtime>.
Importante
Verificare che queste tre impostazioni <runtime> nel file di configurazione di attivazione siano identiche alle impostazioni corrispondenti nel file di configurazione dell'applicazione o dell'host.
Il file di configurazione di attivazione viene utilizzato solo dal codice dello shim che avvia il runtime. Il runtime stesso non ha alcuna interazione con il file.
Una volta che il file di configurazione dell'applicazione è stato creato, impostare la variabile di ambiente COMPLUS_ApplicationMigrationRuntimeActivationConfigPath sul percorso del file. Durante il processo di selezione del runtime da attivare, in tale percorso viene ricercato un file di configurazione dell'applicazione il cui nome corrisponde al modello.
Se la variabile di ambiente è impostata ma il percorso specificato non contiene alcun file di configurazione di attivazione corrispondente al modello, l'attivazione del runtime verrà controllata dal file di configurazione dell'applicazione o dell'host, come di consueto.
È possibile impostare la variabile di ambiente sia globalmente sia mediante un processo dell'utilità di avvio che configura l'ambiente. L'impostazione di variabili di ambiente globali è soggetta a race condition con altre applicazioni.
Ad esempio, nella sessione della riga di comando riportata di seguito un file di configurazione di attivazione viene copiato in una cartella, la variabile di ambiente viene impostata su tale percorso, quindi viene eseguita l'applicazione.
copy c:\MyConfigs\MyApp.exe.activation_config c:\CustomConfigs
set COMPLUS_ApplicationMigrationRuntimeActivationConfigPath =
c:\CustomConfigs
c:\Program Files\MyApp\MyApp.exe
Nel file di configurazione di attivazione riportato di seguito viene specificata l'attivazione del runtime di .NET Framework 4 e viene duplicata un'impostazione <appDomainResourceMonitoring> ipotetica dal file ipotetico di configurazione dell'applicazione.
<configuration>
<startup>
<supportedRuntime version="v4.0.xxxx"/>
</startup>
<runtime>
<appDomainResourceMonitoring enabled="true"/>
</runtime>
</configuration>
Metodi di attivazione supportati
I file di configurazione di attivazione hanno effetto sui metodi di attivazione riportati di seguito. Il termine "legacy" si riferisce a versioni di .NET Framework antecedenti a .NET Framework 4.
Esecuzione di qualsiasi file con estensione exe gestito su un computer in cui è installato .NET Framework 4.
Utilizzo dell'API di hosting legacy; ad esempio, la funzione globale CorBindToRuntimeHost.
Caricamento ed esecuzione componenti legacy in modalità mista creati con Visual C++.
Caricamento ed esecuzione di componenti COM legacy.
Nota
I file di configurazione di attivazione non sono utilizzati quando si caricano e si eseguono componenti COM creati utilizzando .NET Framework 4 o versioni successive.
Utilizzo del metodo ICLRMetaHostPolicy::GetRequestedRuntime nell'API di hosting con il contrassegno METAHOST_POLICY_USE_PROCESS_IMAGE_PATH.
Utilizzo del metodo ICLRMetaHostPolicy::GetRequestedRuntime e specifica di un percorso del file di assembly per il parametro pwzBinary.
Nota
Se viene chiamato il metodo ICLRMetaHostPolicy::GetRequestedRuntime, i file di configurazione di attivazione non vengono utilizzati e né il parametro pwzBinary né il contrassegno METAHOST_POLICY_USE_PROCESS_IMAGE_PATH vengono utilizzati.
Vedere anche
Concetti
Distribuzione di .NET Framework e delle applicazioni