我有一个引用 DLL 的 .NET 控制台应用程序。如果 DLL 与 EXE 位于同一文件夹中,它运行良好,但我想将 DLL 放在不同的文件夹中。我怎样才能做到这一点?
最佳答案
如果 动态链接库 位于子文件夹中,您可以将此文件夹添加到 AppDomain private path .AppDomain
的私有(private) bin 路径AppDomain
后无法更改已创建(AppDomain.AppendPrivatePath
已过时),如果您不想创建新的 AppDomain
,可以修改probing element在 App.config 中。
如果它不在子文件夹中,事情会变得更复杂,你可以load the assembly使用其完整路径,但如果它引用其他程序集,CLR 将无法解析依赖关系。
如果要解决依赖关系,可以向 AppDomain.AssemblyResolve 添加处理程序并在您的特定文件夹中获取所需的程序集。
另一种可能性是将此 DLL(和依赖项)放在 GAC 中。
关于.net - 从不同的文件夹加载 DLL 引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2009047/