2010-04-21 9 views

risposta

12

La copia shadow crea una copia dell'assembly a cui si fa riferimento.

Il motivo è che .Net (più esattamente Windows) non può scaricare (alcuni) assiemi all'interno di un processo una volta caricato. Per questo motivo non è mai possibile sostituire un assembly senza arrestare l'intero processo perché il file rimane bloccato dal sistema operativo.

Tuttavia se si dispone di una copia shadow .Net in realtà utilizza che per caricare le classi è possibile sostituire il file .dll originale e solo la copia shadow (di cui a nessuno 'interessa') rimane bloccata.

Ciò è particolarmente importante in alcuni ambienti (ad esempio un server Web in cui ovviamente non si desidera arrestare l'intero server solo per eseguire una nuova versione di alcune applicazioni Web).

+0

Cool, grazie per la chiara spiegazione. – Ybbest