Как получить каталог установки в C # после развертывания DLL - PullRequest
9 голосов
/ 02 декабря 2008

Есть ли какой-нибудь умный способ получить путь установки при работе в DLL (C #), которая будет вызываться из приложения в другой папке?

Я разрабатываю надстройку для приложения. Моя надстройка написана на C #. Приложение, которое будет использовать, написано на C и должно компилировать некоторые вещи во время оценки, поэтому у меня есть промежуточный этап с dll C ++, который обрабатывает бизнес взаимодействия с C # и показывает только чистый интерфейс, с которым C может работать.

То, что я разверну, будет набором .dll и .lib и .h для части C ++ (иногда статическое связывание будет необходимо).

При попытке настройки и распечатки информации о текущем каталоге из dll C # с помощью:

        Console.WriteLine(Directory.GetCurrentDirectory());

или

        Console.WriteLine(System.Environment.CurrentDirectory);

Я получаю путь к исполняемым файлам.

Итак ... еще раз, как мне получить путь установки моей DLL?

Редактировать: Они оба работали! Спасибо за быстрый ответ, ребята!

Ответы [ 3 ]

12 голосов
/ 02 декабря 2008

Я думаю, что вы хотите Assembly.GetExecutingAssembly().Location.

3 голосов
/ 03 апреля 2013

Один из этих двух способов:

using System.IO;
using System.Windows.Forms;
string appPath = Path.GetDirectoryName(Application.ExecutablePath);

Или:

using System.IO;
using System.Reflection;
string path = Path.GetDirectoryName(
Assembly.GetAssembly(typeof(MyClass)).CodeBase);
3 голосов
/ 02 декабря 2008

Попробуйте это:

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