我有一个.NET应用程序,我希望除了标准GAC,当前目录,PATH区域之外,还可以搜索其他依赖DLL的路径。是否有可能告诉应用程序执行此操作?如何向DLL搜索顺序添加路径
例如
告诉应用程序查看“[Executable Path] \ Dependent DLLs”。
我有一个.NET应用程序,我希望除了标准GAC,当前目录,PATH区域之外,还可以搜索其他依赖DLL的路径。是否有可能告诉应用程序执行此操作?如何向DLL搜索顺序添加路径
例如
告诉应用程序查看“[Executable Path] \ Dependent DLLs”。
您可以在.config文件中使用<probing>
元素来添加专用程序集搜索路径。
另一种在您的配置中设置探测的方法(如果您需要更多灵活性) - 您可以添加自己的处理程序来搜索其他位置并自行加载它们。
在启动您的应用程序
AppDomain.CurrentDomain.AssemblyResolve += CurrentDomainAssemblyResolve;
添加处理程序用自己的方法取的名字,并搜索其他位置的主要方法 -
private static Assembly CurrentDomainAssemblyResolve(object setnder, ResolveEventArgs args)
{
return LoadEmbeddedAssembly(args.Name);
}
我用这个方法嵌入的DLL作为资源,所以我可以有一个单独的可执行文件进行分发,但您也可以从一个目录加载它们。
你没有提供足够的信息...应用程序是否动态加载依赖的DLL - 通过Assembly.LoadFrom? – Yahia
它正在使用XamlXmlReader和ActivityXamlServices.Load加载工作流程。依赖的DLL将基于加载的XAML文件动态变化。 –