我有一个可执行文件,比如 abc.exe,它引用 a.dll(与可执行文件相同的文件夹)、b.dll(在随机文件夹中)和 c.dll(在随机文件夹中)。
但是,这些 DLL 不一定与可执行文件(或 GAC)在同一目录中,这是我无能为力的。
我尝试使用 System.Reflection.Assembly 来尝试查找 abc.exe 使用的所有引用程序集。
foreach (AssemblyName an in assembly.GetReferencedAssemblies())
{
Assembly.Load(an);
}
这似乎加载了可执行文件目录 (a.dll) 中的程序集,但毫不奇怪会为其他程序集抛出文件未找到异常。
我的想法是使用 System.Diagnostics.Process 加载进程,然后反映进程,因为这应该告诉我在哪里可以找到 b.dll 和 c.dll(?)
但是,我不知道该怎么做。这可能吗?如果可以,怎么做?谢谢!