Tengo un archivo de configuración que necesito cargar como parte de la ejecución de un dll que estoy escribiendo.¿Cómo obtener la ubicación de la DLL que se está ejecutando actualmente?
El problema que estoy teniendo es que el lugar en el que poner el archivo DLL y el archivo de configuración no es la "ubicación actual" cuando la aplicación se está ejecutando.
Por ejemplo, pongo el archivo DLL y xml aquí:
D: \ Archivos de programa \ Microsoft Team Foundation Server 2010 \ Servicios de nivel de aplicación \ web \ bin \ Plugins
Pero si trato de hacer referencia al archivo XML (en mi DLL) como esto:.
XDocument doc = XDocument.Load(@".\AggregatorItems.xml")
continuación \ AggregatorItems.xml se traduce en :
C: \ windows \ system32 \ inetsrv \ AggregatorItems.xml
Por lo tanto, la necesidad de encontrar una manera (espero) de saber dónde se encuentra el archivo DLL que se está ejecutando actualmente. Básicamente, estoy buscando esto:
XDocument doc = XDocument.Load([email protected]"\AggregatorItems.xml")
Ay! Devuelve 'C: \\ Windows \\ Microsoft.NET \\ Framework64 \\ v4.0.30319 \\ Archivos temporales de ASP.NET \\ tfs \\ de3c0c8e \\ c1bdf790 \\ assembly \\ dl3 \\ 20b156cb \\ 22331f24_bfb9cb01 \ \ AggregatorItems.xml' – Vaccano
¡Ah! Pero 'Assembly.GetExecutingAssembly(). CodeBase' lo tiene! – Vaccano
¿Cómo cargaste esa DLL? Probé ambos con un archivo DLL ejecutable y una biblioteca utilizada por otro EXE y la propiedad 'Ubicación' funcionó para ambos. – BrokenGlass