【发布时间】:2016-10-07 08:06:13
【问题描述】:
我正在开发一个“执行器”,它将通过反射执行 DLL。我将配置一个实现特定接口的 DLL,执行器将加载此 DLL 并执行基于接口的方法。
在某些情况下,配置的 DLL 可能有另一个不在目录中的引用 DLL。
我的问题是:如何在没有引用的物理 DLL 的情况下加载和执行这个程序集?
例如:
-Executor calls DLL "A".
-DLL "A" references DLL "B" and DLL "C".
-DLL "B" and DLL "C" are not in the directory.
【问题讨论】:
-
您预计会发生什么?为什么程序集不在同一个目录中,它们在哪里?你试过什么?例如,请参阅Resolve assembly references from another folder、How to add folder to assembly search path at runtime in .NET? 等。
-
那么他们在哪里?它们要么位于系统目录之一/GAC 中,并且在您加载 DLL“A”时会正常加载,或者找不到它们并且加载 DLL“A”将失败。
-
@nos 我没有 DLL,它们的唯一本地是在 DLL "A" 的引用中:(
-
@CodeCaster 我正在尝试编译 DLL "A" 以将 DLL "B" 和 DLL "C" 一起携带。有可能吗?
-
这是一个完全不同的问题,它被称为“合并程序集”。在提出问题之前尝试搜索,无论是作为问题还是在 cmets 中。
标签: c#