2011-08-25 10 views
18

Estoy construyendo un proyecto MVC 3 que requiere una referencia, por ruta, en el controlador a un ensamblaje ubicado en la carpeta \bin\ del proyecto.MVC 3 vía de acceso relativa a ./bin/

¿Alguien puede indicarme la dirección correcta para construir una ruta relativa a la carpeta \bin\?

Ejecutar el proyecto en modo de depuración en VS 2010 hace que el directorio actual sea C:\Program Files (x86)\Common Files\Microsoft Shared\DevServer\10.0, por lo que con .\bin\ busca una carpeta bin en esa ruta.

Gracias

Respuesta

39

usted podría utilizar dominio de aplicación actual para obtener esta información.

// 1) get current directory for this loaded assembly 
// 2) combine path to get \bin folder 
var path = System.IO.Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "bin"); 
+0

¡Funcionó por primera vez! Muchas gracias. – AndyBursh

+0

gracias, un salvavidas – Cohen

8

Ya que estás en un controlador tiene acceso a una instancia de HttpServerUtilityBase, que expone un método MapPath:

var binDirectoryPath = Server.MapPath("~/bin"); 

Esto tiene la ventaja añadida de ser trivial unidad comprobable, ya que la MapPath método es virtual y puede ser burlado.