2011-11-14 5 views
5

Sto cercando di compilare un'applicazione per la quale ho la soluzione e non riesco ad andare oltre:'È necessario aggiungere un riferimento a Microsoft.Practices.EnterpriseLibrary.Common', anche se il montaggio è nel GAC

'Microsoft.Practices.EnterpriseLibrary.Common.Configuration.IConfigurationSource' è definito in un assieme a cui non viene fatto riferimento. È necessario aggiungere un riferimento a assembly 'Microsoft.Practices.EnterpriseLibrary.Common, Version = 3.1.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a'

Così ho aggiunto l'assembly nella Global Assembly Cache:

enter image description here

Dopo alcune ricerche ho aperto visual Studio con il Fusion Assembly Binding Viewer esecuzione, che sembrava creare un sacco di tronchi, ma nessuno che si è riferito a questa versione esatta del montaggio (tuttavia 4.1.0.0 è in là).

Non posso semplicemente aggiungere -> riferimento come VS mi dice che esiste già un riferimento con lo stesso nome.

Quali altre strade dovrei esplorare?

+0

Perché non usi EntLib 5.0? – abatishchev

+0

Questo non è il mio progetto, devo solo essere in grado di compilarlo –

+0

Se c'è un riferimento esistente, provare a rimuovere il riferimento esistente e quindi aggiungerlo nuovamente. Avere l'assembly nel GAC non farà alcuna differenza in fase di compilazione. – Justin

risposta

1

Si è tentato di eseguire alias l'assembly anche se si utilizza .net 4.0 si dovrebbe avere una voce nel file .config per esempio che mostra il vecchio nome dell'assembly che fa riferimento al nuovo nome dell'assembly. Molte altre cose da tenere a mente .. se il .DLL è nel GAC e non si dispone di una copia di tale assembly nella cartella bin, questo potrebbe causare un problema ..

È questo riferimento locale o è il codice su una macchina remota ..? se si tratta di una macchina remota .. perché non aggiungere tale assembly specifico al GAC, nota anche la differenza di versione dei due assembly nella tua schermata ..