2011-08-25 2 views
18

프로젝트의 \bin\ 폴더에있는 어셈블리에 대한 컨트롤러의 경로에 대한 참조가 필요한 MVC 3 프로젝트를 빌드 중입니다.MVC 3 상대 경로 ./bin/

아무도 올바른 방향으로 \bin\ 폴더의 상대 경로를 구성 할 수 있습니까?

VS 2010에서 디버그 모드로 프로젝트를 실행하면 현재 디렉터리가 C:\Program Files (x86)\Common Files\Microsoft Shared\DevServer\10.0이되므로 .\bin\을 사용하면 해당 경로에서 bin 폴더를 찾습니다.

감사합니다.

답변

39

이 정보를 얻으려면 현재 appdomain을 사용할 수 있습니다. 당신이 컨트롤러에있어 이후

// 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

처음으로 일했습니다! 큰 감사. – AndyBursh

+0

감사합니다. 생명의 은인 – Cohen

8

당신은 MapPath 방법을 노출 HttpServerUtilityBase의 인스턴스에 액세스 할 수 있습니다

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

이있는 MapPath를 이후 하찮게 단위 테스트 할 수있는의 추가 혜택, 방법은 가상이며 조롱받을 수 있습니다.