2008-12-02 5 views
8

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

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

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

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

 Console.WriteLine(Directory.GetCurrentDirectory()); 

или:

 Console.WriteLine(System.Environment.CurrentDirectory); 

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

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

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

ответ

11

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

3

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

typeof(TypeInMyModule).Assembly.Location 
2

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

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); 
Смежные вопросы