Concetti di applicazioni isolate e assembly side-by-side
Un'applicazione è considerata un' applicazione isolata se tutti i suoi componenti sono assembly side-by-side.Un assembly side-by-side è una raccolta di risorse—un gruppo di DDL, classi Windows,server COM, tipi di librerie o interfacce—che vengono distribuite insieme e sono rese disponibili ad una applicazione per essere utilizzate in fase di esecuzione.In genere, un assembly side-by-side è costituito da una o più DLL.
Assembly condiviso o privato
Un assembly side-by-side può essere condiviso o privato.Gli Assembly side-by-side condivisi possono essere utilizzati da più applicazioni, nei cui manifesti è specificata una dipendenza dal assembly.Più versioni di un assembly side-by-side, possono essere condivise in differenti applicazioni che sono eseguite contemporaneamente.Un assembly privato è un assembly distribuito insieme ad un'applicazione per l'utilizzo esclusivo da parte di tale applicazione.Gli assembly privati vengono installati nella cartella che contiene i file eseguibile dell'applicazione oppure in una delle relative sottocartelle.
Manifesti e ordine di ricerca
Sia le applicazioni isolate che gli assembly side-by-side sono descritti all'interno del manifest.Un manifesto è un documento XML che può essere un file esterno, oppure può essere integrato in un'applicazione o in un assembly come una risorsa.Il file manifesto di un'applicazione isolata viene utilizzato per gestire i nomi e le versioni di assembly side-by-side condivisi a cui l'applicazione deve essere associata in fase di esecuzione.Nel manifesto di un assembly side-by-side vengono specificati i nomi, le versioni, le risorse e gli assembly dipendenti degli assembly side-by-side.Per condividere un assembly side-by-side, il relativo file manifest viene installato nella cartella %WINDIR%\WinSxS\Manifests\.Nel caso di un assembly privato, si consiglia di includere il relativo file manifest nella DLL come risorsa con un ID uguale a 1.È inoltre possibile avere un assembly privato con lo stesso nome della DLL.Per ulteriori informazioni, vedere assembly privati.
In fase di esecuzione, Windows utilizza il manifest dell'applicazione per ricavare le informazioni sull'assembly, per cercare e caricare l'assembly side-by-side corrispondente.Se in un'applicazione isolata viene specificata una dipendenza da un assembly, il sistema operativo eseguirà prima la ricerca degli assembly condivisi nella cache degli assembly nativi nella cartella %WINDIR%\WinSxS\.Se l'assembly richiesto non viene trovato, il sistema operativo ricerca quindi un assembly privato, in una cartella della struttura di directory dell'applicazione.Per ulteriori informazioni, vedere Assembly Searching Sequence.
Modifica delle dipendenze
È possibile modificare le dipendenze del assembly side-by-side, dopo che un'applicazione è stata distribuita modificando il File di configurazione dell'editore e il File di configurazione dell'applicazione.Un file di configurazione dell'editore, conosciuto come file dei criteri dell'editore, è un file XML che reindirizza a livello globale le applicazioni e gli assembly, dall'utilizzo di una versione di un assembly side-by-side ad un'altra versione dello stesso assembly.Ad esempio, è possibile modificare una dipendenza, quando viene distribuita una correzione di bug o della sicurezza degli assembly side-by-side e si desidera reindirizzare tutte le applicazioni per utilizzare una versione corretta.Un file di configurazione dell'applicazione, è un file XML che reindirizza un'applicazione specifica all'utilizzo di una versione di un assembly side-by-side per utilizzare un'altra versione dello stesso assembly.È possibile utilizzare un file di configurazione, per reindirizzare un'applicazione all'utilizzo di una versione di un assembly side-by-side differente da quello definito nel file di configurazione dell'editore.Per ulteriori informazioni, vedere Configurazione.
Librerie di Visual C++
In Visual Studio 2005 e Visual Studio 2008, le librerie ridistribuibile come ATL, MFC, CRT, C++ standard, OpenMP e MSDIA vengono distribuite come un assembly side-by-side condiviso nella cache degli assembly nativi.In Visual Studio 2010 e Visual Studio 2012, le librerie ridistribuibili utilizzano la distribuzione centrale.Per impostazione predefinita, tutte le applicazioni che sono compilate utilizzando Visual C++ vengono compilate con il file manifest incorporato nel file binario finale e il file manifest descrive le dipendenze del binario nelle librerie Visual C++.Per informazioni dettagliate sulla generazione del file manifest per applicazioni Visual C++, vedere Informazioni sulla generazione di manifesti per programmi C/C++Un file manifest non è necessario per le applicazioni che sono legate staticamente alle librerie utilizzate, o che utilizzano la distribuzione locale.Per ulteriori informazioni sulla distribuzione, vedere Distribuzione in Visual C++ 2010.
Vedere anche
Altre risorse
Compilazione di applicazioni isolate C/C++ e di assembly side-by-side