4

我有一个托管 DLL(用 C++/CLI 编写),其中包含 C# 可执行文件使用的类。在类的构造函数中,我需要访问引用 DLL 的可执行文件的完整路径。在实际的应用程序中,我知道我可以使用 Application 对象来执行此操作,但如何从托管 DLL 执行此操作?

4

2 回答 2

15
Assembly.GetCallingAssembly()

或者

Assembly.GetExecutingAssembly()

或者

Assembly.GetEntryAssembly()

取决于你的需要。

然后使用 Location 或 CodeBase 属性(我不记得是哪一个)。

于 2008-09-23T13:53:50.730 回答
5

@leppie:谢谢-那是我需要的指针。

供将来参考,在 C++/CLI 中,这是有效的实际语法:

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

GetExecutingAssembly()提供了 DLL 的名称

GetCallingAssembly()返回类似 System.Windows.Forms

GetEntryAssembly返回完整路径,类似于GetModulePath()Win32 下。

于 2008-09-23T15:26:25.263 回答