¿Hay alguna manera de obtener la ruta para el ensamblado en el que reside el código actual? No quiero la ruta del ensamblado de llamada, solo la que contiene el código.
Básicamente, mi prueba unitaria necesita leer algunos archivos de prueba xml que se encuentran en relación con el dll. Quiero que la ruta siempre se resuelva correctamente, independientemente de si el dll de prueba se ejecuta desde TestDriven.NET, la GUI MbUnit u otra cosa.
Editar : La gente parece estar malentendiendo lo que estoy preguntando.
Mi biblioteca de prueba está ubicada en say
C: \ projects \ myapplication \ daotests \ bin \ Debug \ daotests.dll
y me gustaría obtener este camino:
C: \ projects \ myapplication \ daotests \ bin \ Debug \
Las tres sugerencias hasta ahora me fallan cuando corro desde MbUnit Gui:
Environment.CurrentDirectory
da c: \ Archivos de programa \ MbUnitSystem.Reflection.Assembly.GetAssembly(typeof(DaoTests)).Location
da C: \ Documents and Settings \ george \ Local Settings \ Temp \ .... \ DaoTests.dllSystem.Reflection.Assembly.GetExecutingAssembly().Location
da lo mismo que el anterior.
fuente
packages
lado del archivo sln. PERO cuando compila y distribuye cosas, no hay archivos sln ni directorios de paquetes. Durante la compilación, las cosas que se necesitan (pero no todo) se copian en el directorio bin. Su mejor opción es utilizar una secuencia de comandos posterior a la creación para copiar el archivo que desee.