Visual Studio 2008 deploy di assembly di terze parti

A volta può capitare che un’applicazione utilizzi assembly di terze parti e che quindi occorra poi eseguire il deploy di tali assembly sui computer. Ciò però significa che se tali assembly vengono aggiornati occorre rieseguire il deploy degli assembly di terze parti.

Quindi ambienti dove non si ha a disposizione strumenti di deploy automatizzato come SCCM e gestire via group policy la situazione costituirebbe un carico amministrativo troppo elevato a causa della frequenza di aggiornamento di tali assembly da parte del produttore (si pensi a controlli di terze parti quali ad esempio DevExpress) la soluzione migliore è che l’applicazione contenga nella directory bin gli assembly necessari.

Un metodo per automatizzare la copia di tali assembly nella directory di Bin quando non è possibile utilizzare la proprietà Copy Local (si pensi agli assembly satellite per la localizzazione o ad assembly non referenziati direttamente perchè presenti GAC sul computer di sviluppo) è quella di utilizzare il Build Event On successful build.

image

Per ulteriori informazioni si veda How to- Specify Build Events (Visual Basic).

In alternativa, come mi ha gentilmente suggerito Corrado Cavalli si potrebbe provare a gestire l’evento AssemblyResolve. che permetterebbe di puntare ad una directory comune in cui vi sono gli assembly di terze parti magari su una share di rete evitando di copiarli nelle bin directory di ogni applicazione, ma con il rischio che ovviamente dopo un aggiornamento un’applicazione possa non funzionare.