如何向DLL搜索顺序添加路径

时间:2011-07-26 21:06:51

标签: c# assemblies dynamic-linking

我有一个.NET应用程序,除了标准GAC,当前目录,PATH区域之外,我希望搜索其他依赖DLL的路径。是否可以告诉应用程序执行此操作?

E.g。

告诉应用程序查看“[可执行路径] \从属DLL”。

2 个答案:

答案 0 :(得分:6)

您可以使用.config文件中的<probing>元素添加私有程序集搜索路径。

答案 1 :(得分:2)

在您的配置中设置探测的另一种方法(如果您需要更多灵活性) - 您可以添加自己的处理程序来搜索其他位置并自行加载。

启动应用的主要方法

AppDomain.CurrentDomain.AssemblyResolve += CurrentDomainAssemblyResolve;

使用您自己的方法添加处理程序以获取名称并搜索其他位置 -

private static Assembly CurrentDomainAssemblyResolve(object setnder, ResolveEventArgs args)
{
     return LoadEmbeddedAssembly(args.Name);
}

我使用此方法将DLL作为资源嵌入,因此我可以分配一个可执行文件,但您也可以从目录中加载它们。