Как получить текущий каталог в библиотеке классов? - PullRequest
26 голосов
/ 22 апреля 2009

Я искал, но не нашел решения этой проблемы: я хочу создать библиотеку классов, в которой есть файл конфигурации в подкаталоге с именем Configuration. Я хочу, чтобы эта библиотека классов была развернута где угодно, и я хочу, чтобы она находила свои файлы конфигурации, зная свое собственное местоположение.

Предыдущие попытки с Assembly.GetExecutingAssembly().Location не работали.
Возвращает временные местоположения, такие как

C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\7c00e0a3\38789d63\assembly\dl3\9c0a23ff\18fb5feb_6ac3c901

вместо желаемого

bin/Configuration путь.

Итак:

  1. Может ли библиотека классов знать свое местоположение на диске?
  2. Как мне поступить с умными тестовыми сценариями для этой функции, поскольку кажется, что каталоги меняются в зависимости от того, как вы запускаете приложение (отладка внутри VS, развертывание на IIS и т. Д.)

1 Ответ

39 голосов
/ 22 апреля 2009

Это должно работать -

string assemblyFile = (
    new System.Uri(Assembly.GetExecutingAssembly().CodeBase)
).AbsolutePath;
...