MVC 3 относительный путь к ./bin/ - PullRequest
21 голосов
/ 25 августа 2011

Я строю проект MVC 3, который требует ссылки в контроллере по пути к сборке, находящейся в папке \bin\ проекта.

Кто-нибудь может указать мне правильное направление для построения относительного пути к папке \bin\?

Запуск проекта в режиме отладки в VS 2010 приводит к тому, что текущим каталогом является C:\Program Files (x86)\Common Files\Microsoft Shared\DevServer\10.0, поэтому при использовании .\bin\ выполняется поиск папки bin по этому пути.

Спасибо

Ответы [ 2 ]

44 голосов
/ 25 августа 2011

Вы можете использовать текущий домен приложения для получения этой информации.

// 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 голосов
/ 06 февраля 2013

Поскольку вы находитесь в контроллере, у вас есть доступ к экземпляру HttpServerUtilityBase , который предоставляет метод MapPath :

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

.преимущество в том, что он тривиально тестируется на единицу, поскольку метод MapPath является виртуальным и может быть поддельным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...