Cómo obtener la ruta de acceso del ejecutable desde una DLL Administrada
-
02-07-2019 - |
Pregunta
Tengo una DLL administrada (escrito en C++/CLI) que contiene una clase utilizada por un C# ejecutable.En el constructor de la clase, que me necesitan para acceder a la ruta de acceso completa del archivo ejecutable referencia a la DLL.En la aplicación real sé que puedo usar el objeto de la Aplicación para hacer esto, pero ¿cómo puedo hacerlo desde una DLL administrada?
Solución
Assembly.GetCallingAssembly()
o
Assembly.GetExecutingAssembly()
o
Assembly.GetEntryAssembly()
Dependiendo de su necesidad.
A continuación, utilice la Ubicación o el Código base de la propiedad (nunca me acuerdo cual).
Otros consejos
@leppie:Gracias - que era el puntero que yo necesitaba.
Para referencia en el futuro, en C++/CLI, esta es la sintaxis que funciona:
String^ appPathString = Assembly::GetEntryAssembly()->Location;
GetExecutingAssembly()
proporciona el nombre de la DLL
GetCallingAssembly()
devuelve algo como Sistema.Windows.Formas
GetEntryAssembly
devuelve la ruta de acceso completa, similar a la GetModulePath()
en Win32.