2009-04-22 10 views
22

He estado buscando pero no he encontrado una solución para este problema: quiero crear una biblioteca de clases que tenga un archivo de configuración bajo un subdirectorio llamado Configuración. Quiero que la biblioteca de clases se implemente en cualquier lugar y quiero que encuentre sus archivos de configuración conociendo su propia ubicación.¿Cómo obtener el directorio actual en una biblioteca de clases?

Los intentos anteriores con Assembly.GetExecutingAssembly().Location no funcionaron.
volvería ubicaciones temporales tales como

C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\7c00e0a3\38789d63\assembly\dl3\9c0a23ff\18fb5feb_6ac3c901

lugar de la ruta

bin/Configuration deseada.

Así:

  1. Puede una biblioteca de clases de ser consciente de su propia ubicación en el disco?
  2. ¿Cómo hago para scripts de prueba Witting para esta funcionalidad, ya que parece que el cambio directorios basa en la forma de ejecutar la aplicación (depuración dentro de VS, desplegando en IIS, etc)
+0

¿Por qué no incluir la configuración en el archivo app.config de la aplicación y usar ConfigurationManager en sus bibliotecas de clase? –

+0

Es posible que desee aclarar su pregunta (para una mejor búsqueda más adelante) que se trata de ASP.NET. Para aplicaciones de escritorio, GetExecutingAssembly() funciona bien. – Stu

+1

@Justin: Quiero que la Biblioteca de clases sea independiente de la aplicación de la persona que llama. @Stu: Ambos. Quiero crear una biblioteca de clases que se pueda usar tanto para aplicaciones de consola como para aplicaciones web. La biblioteca de la clase no debería preocuparse por quién la está llamando. – nandos

Respuesta

33

Esto debería funcionar -

string assemblyFile = (
    new System.Uri(Assembly.GetExecutingAssembly().CodeBase) 
).AbsolutePath; 
+0

would: System.Reflection.Assembly.GetExecutingAssembly() .Location no da la misma información ...? – dba

+1

@dba no cuando hay copia oculta. pruébalo en la prueba de unidad, por ejemplo, y estará mal –

Cuestiones relacionadas