¿Cómo puedo obtener la ruta del ensamblaje en el que se encuentra el código?
¿Hay alguna forma de obtener la ruta del ensamblaje en el que reside el código actual? No quiero la ruta del ensamblaje que llama, sólo el que contiene el código.
Básicamente mi prueba de unidad necesita leer algunos archivos de prueba xml que se encuentran en relación con la dll. Quiero que la ruta siempre se resuelva correctamente, independientemente de si la dll de prueba se ejecuta desde TestDriven.NET, la GUI MbUnit o cualquier otra cosa.
Editar: La gente parece estar malinterpretando lo que estoy pidiendo.
Mi biblioteca de pruebas se encuentra en digamos
C:\Nproyectos\Nmyapplication\daotests\bin\Ndebug\daotests.dll
y me gustaría obtener esta ruta:
C:\projects\myapplication\daotests\bin\Debug\\daotests.dll
Las tres sugerencias hasta ahora me fallan cuando ejecuto desde la Gui de MbUnit:
-
Environment.CurrentDirectory
da c:\Narchivos de programa\NMbUnit. -
System.Reflection.Assembly.GetAssembly(typeof(DaoTests)).Location da como resultado C:\NDocumentos y Settings\george\Local Settings\Temp\ ....\DaoTests.dll
-
System.Reflection.Assembly.GetExecutingAssembly().Location
da lo mismo que el anterior.
¿Esto ayuda?
Esto debería funcionar, a no ser que el ensamblaje esté copiado en la sombra:
El directorio actual donde existe.
Si copias el archivo .xml con build deberías encontrarlo.
o