Condividi tramite


Componenti isolati

Gli autori dei pacchetti di installazione possono specificare che il programma di installazione copia i file condivisi (dll comunemente condivise) di un'applicazione nella cartella dell'applicazione anziché in un percorso condiviso. Questo set privato di file (DLL) viene quindi usato solo dall'applicazione. Isolare l'applicazione insieme ai componenti condivisi in questo modo presenta i vantaggi seguenti:

  • L'applicazione usa sempre le versioni dei file condivisi con cui è stata distribuita.
  • L'installazione dell'applicazione non sovrascrive altre versioni dei file condivisi da altre applicazioni.
  • Le installazioni successive di altre applicazioni che usano versioni diverse dei file condivisi non possono sovrascrivere i file usati dall'applicazione.

Poiché l'implementazione corrente di COM mantiene un singolo percorso completo nel Registro di sistema per ogni coppia CLSID/Context, forza tutte le applicazioni a usare la stessa versione di una DLL condivisa. Per consentire a un'applicazione di mantenere una copia privata di un server COM, il caricatore di sistema in Windows 2000 verifica la presenza di un oggetto . File LOCAL nella cartella dell'applicazione. Se il caricatore di sistema rileva un oggetto . Il file LOCALE modifica la logica di ricerca in modo da preferire le DLL che si trovano nella stessa cartella dell'applicazione.

Quando Windows Programma di installazione esegue l'azione IsolateComponents copiano i file del componente (comunemente una DLL condivisa) specificati nella colonna Component_Shared della tabella IsolatedComponent nella stessa cartella del componente (in genere un file di .exe) specificato nella colonna Component_Application. Il programma di installazione crea un file in questa directory, zero byte di lunghezza, con il nome file breve del file di chiave per Component_Application (in genere il nome è lo stesso del .exe dell'applicazione) aggiunto con . LOCALE. Il programma di installazione usa la registrazione per il componente nel percorso condiviso e non scrive informazioni di registrazione per la copia del componente nel percorso privato.

Per altre informazioni, vedere: