2009-05-05 10 views

risposta

17

No. Non è possibile ottenere questo. Se nella GAC ​​esiste una DLL di versione uguale a quella a cui si fa riferimento nel programma, CLR eseguirà sempre su. Non c'è modo di ignorare questo comportamento.

+0

È qualcosa a che fare con la sicurezza? – codeulike

+0

@codeulike, credo che abbia più a che fare con la manutenzione. So meno sul perché e altro sulla capacità di farlo, perché ho passato un sacco di tempo a cercare di sovvertire questo comportamento prima di rendermi conto che semplicemente non era possibile. – JaredPar

+5

Questo è il motivo per cui il GAC è malvagio, nel mio libro. – Benjol

2

Non sono sicuro se c'è qualcosa che in realtà inverte l'ordine di ricerca in quanto tale, ma a seconda delle esigenze si potrebbe voler esaminare assembly binding redirection che offre un controllo molto elevato su quali versioni di assiemi sono caricati.

+1

Ciò cambierà la versione che si lega. Tuttavia, la versione che si sceglie sarà ancora soggetta alle regole GAC che ho citato. – JaredPar

+0

In effetti, ha chiarito la risposta un po 'per riflettere questo –

1

JaredPar ha ragione: il GAC ha il sempre il viene interrogato per primo per l'assemblaggio. Tuttavia, se sei come me, e desideri che la DLL risieda nel GAC e esegua ancora il debug, puoi aggiungere uno script di compilazione per scaricare il tuo file .pdb nella stessa cartella dell'assembly nel GAC (sarà in C: \ windows \ assembly \ gac_msil \ assembly.name_ [token chiave pubblica]).

Problemi correlati