Come posso ottenere il percorso dell'assembly in cui si trova il codice?
C'è un modo per ottenere il percorso dell'assembly in cui risiede il codice corrente? Non voglio il percorso dell'assembly chiamante, solo quello che contiene il codice.
Fondamentalmente il mio test unitario ha bisogno di leggere alcuni file di test xml che si trovano relativi alla dll. Voglio che il percorso si risolva sempre correttamente indipendentemente dal fatto che la dll di test venga eseguita da TestDriven.NET, dalla GUI di MbUnit o da qualcos'altro.
Modifica: Sembra che la gente stia fraintendendo quello che sto chiedendo.
La mia libreria di test si trova in diciamo
C:\projects\myapplication\daotests\bin\Debug\daotests.dll
e vorrei ottenere questo percorso
C:\projects\myapplication\daotests\bin\Debug\
I tre suggerimenti finora mi falliscono quando eseguo dalla MbUnit Gui:
-
`Environment.CurrentDirectory dà c:\ProgrammiMbUnit
-
System.Reflection.Assembly.GetAssembly(typeof(DaoTests)).Location
dà C:\Documents and Settings\george\Local Settings\Temp\ ....\DaoTests.dll -
System.Reflection.Assembly.GetExecutingAssembly().Location
dà lo stesso risultato del precedente.
Questo aiuta?
Questo dovrebbe funzionare, a meno che l'assembly non sia shadow copied:
La directory corrente in cui esistete.
Se copi il file .xml fuori con build dovresti trovarlo.
oppure