Есть ли какой-нибудь умный способ получить путь установки при работе с dll (C#), которая будет вызываться из приложения в другой папке?
Я разрабатываю надстройку для приложения. Моя надстройка написана на C#. Приложение, которое будет использоваться, написано на C и должно скомпилировать некоторые вещи во время оценки, поэтому у меня есть промежуточный этап с dll C++, который обрабатывает бизнес взаимодействия с C# и показывает только чистый внешний интерфейс, с которым C может работать.
Я развертываю набор .dll, .lib и .h для части C++ (иногда может потребоваться статическая привязка).
При попытке выполнить настройку и распечатать информацию о текущем каталоге из библиотеки C# с помощью:
Console.WriteLine(Directory.GetCurrentDirectory());
или же:
Console.WriteLine(System.Environment.CurrentDirectory);
Я получаю путь к исполняемым файлам.
Итак ... еще раз, как мне получить путь установки моей dll?
Обновлено: они оба работали! Спасибо за быстрый ответ, ребята!





Я думаю, что вам нужен Assembly.GetExecutingAssembly().Location.
Попробуй это:
typeof(TypeInMyModule).Assembly.Location
Один из этих двух способов:
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);