Contamos con la mejor respuesta que descubrimos en línea. Nosotros esperamos que te sirva de ayuda y si quieres compartir algo que nos pueda ayudar a mejorar hazlo con libertad.
Solución:
Una vez que el código se compila y ejecuta, ‘Ruta del proyecto’ no tiene significado. Todo lo que puede determinar son las ubicaciones de los archivos de los ensamblajes compilados. Y solo puede hacer lo que está preguntando si su proyecto de consola hace referencia directamente a la DLL de ‘biblioteca de clases’ creada, en lugar de a través de una referencia de proyecto.
Luego, puede utilizar Reflection para obtener rutas de ensamblaje como;
string path = Assembly.GetAssembly(typeof (SomeClassInOtherProject)).Location;
Creo que el problema es:
Dado que el proyecto de la consola tiene la referencia del archivo DLL, está usando DLL para llamar a cualquier método. En este momento, está devolviendo la ubicación DLL del proyecto de la biblioteca de clases que se encuentra en el directorio bin del proyecto de la consola y no conoce la ubicación física del proyecto de la biblioteca de clases.
así que esencialmente está devolviendo la misma ruta del proyecto. Tendré que mover ambos proyectos en el mismo directorio para resolver este problema.
Si carga la biblioteca de clases desde otro ensamblaje.
string Path = System.Reflection.Assembly.GetAssembly(typeof(LibraryClassName)).Location;
string PathToClassLibPro = Path.GetDirectoryName( Path);
Reemplazar LibraryClassName
con el nombre de la clase de su biblioteca.
Nos puedes sostener nuestra faena dejando un comentario y puntuándolo te estamos eternamente agradecidos.