2011-08-25 32 views
18

我正在構建一個MVC 3項目,該項目需要在控制器中通過路徑引用坐在\bin\項目文件夾中的程序集。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

既然你在一個控制器是可以訪問的HttpServerUtilityBase一個實例,它公開了一個MapPath方法:

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

這具有平凡的單元測試的好處是,由於在MapPath方法是虛擬的,可以被模擬。