如何从托管DLL获取可执行文件路径
时间:2020-03-06 14:35:59 来源:igfitidea点击:
我有一个托管DLL(用C ++ / CLI编写),其中包含Cexecutable使用的类。在类的构造函数中,我需要访问引用DLL的可执行文件的完整路径。在实际的应用程序中,我知道可以使用Application对象执行此操作,但是如何从托管DLL中执行此操作?
解决方案
Assembly.GetCallingAssembly()
或者
Assembly.GetExecutingAssembly()
或者
Assembly.GetEntryAssembly()
根据需要。
然后使用Location或者CodeBase属性(我永远都不记得是哪一个)。
@leppie:谢谢,那是我需要的指针。
供将来参考,在C ++ / CLI中,这是有效的实际语法:
String^ appPathString = Assembly::GetEntryAssembly()->Location;
GetExecutingAssembly()提供了DLL的名称
GetCallingAssembly()返回了类似System.Windows.Forms的内容
GetEntryAssembly返回完整路径,类似于Win32下的GetModulePath()。