Как получить путь к исполняемому файлу из управляемой DLL - PullRequest
4 голосов
/ 23 сентября 2008

У меня есть управляемая DLL (написанная на C ++ / CLI), которая содержит класс, используемый исполняемым файлом C #. В конструкторе класса мне нужно получить доступ к полному пути исполняемого файла, ссылающегося на DLL. В реальном приложении я знаю, что могу использовать объект Application для этого, но как я могу сделать это из управляемой DLL?

Ответы [ 2 ]

14 голосов
/ 23 сентября 2008
Assembly.GetCallingAssembly()

или

Assembly.GetExecutingAssembly()

или

Assembly.GetEntryAssembly()

В зависимости от ваших потребностей.

Затем используйте свойство Location или CodeBase (я никогда не помню, какое из них).

5 голосов
/ 23 сентября 2008

@ leppie: Спасибо - мне нужен был указатель.

Для дальнейшего использования, в C ++ / CLI это действительный синтаксис:

String^ appPathString = Assembly::GetEntryAssembly()->Location;

GetExecutingAssembly() предоставил имя DLL

GetCallingAssembly() вернул что-то вроде System.Windows.Forms

GetEntryAssembly вернул полный путь, аналогично GetModulePath() под Win32.

...