MVC 3相对路径到./bin/

22

我正在构建一个MVC 3项目,需要在控制器中通过路径引用位于项目的\bin\文件夹中的程序集。

请问有人可以指点一下如何构建与\bin\文件夹相关的相对路径吗?

在VS 2010的调试模式下运行该项目会导致当前目录为C:\Program Files (x86)\Common Files\Microsoft Shared\DevServer\10.0,因此使用.\bin\会在该路径中查找bin文件夹。

谢谢。

2个回答

47

您可以使用当前应用程序域来获取此信息。

// 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");

13

由于您位于控制器中,因此可以访问HttpServerUtilityBase的实例,它公开了一个MapPath方法:

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

这样做的额外好处是可以轻松进行单元测试,因为 MapPath 方法是虚拟的并且可以被模拟。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接