2009-05-27 4 views
12

Sto cercando di conoscere il percorso di una dll .... diversi siti dicono che non riesco a utilizzare System.Reflection.Assembly.GetExecutingAssembly(). Posizione BUT restituisce un percorso in C: \ Windows \ Microsoft.Net ... ecc ... \ File.dllOttieni il percorso Assembly C#

e voglio c: \ MyProyect \ MiWeb \ Bin \ File.dll

alcun aiuto?

+1

E 'questo per un progetto web? –

+0

Puoi pubblicare i percorsi di assemblaggio effettivi che ottieni e che vuoi? Vale a dire. i percorsi completi, con i veri nomi di assiemi. Inoltre, inserisci il codice per il metodo che tenta di determinare il percorso dell'assembly. –

risposta

21

È possibile farlo usando:

string file = (new System.Uri(Assembly.GetExecutingAssembly().CodeBase)).LocalPath; 
3

La posizione dell'assieme cambia in base ai reindirizzamenti e alla copia shadow. Prova invece a utilizzare la proprietà Codebase.

1

Questo potrebbe essere il percorso utilizzato dal programma ... IIRC, Inizia la ricerca della chiamata al metodo nel GAC prima di passare alla directory di lavoro.

0

Sei sicuro di aver fatto riferimento all'assemblaggio corretto nel tuo progetto? Sembra che tu stia utilizzando un assembly "predefinito" poiché si trova nella cartella .NET.