AssemblyLoaderHelper 无法解析

问题描述 投票:0回答:1

我的程序能够下载新的 DLL 并作为自我更新程序重新启动。我正在尝试添加一些检查,例如“在替换此 DLL 之前,确保它具有类 X 和方法 Y”。

我正在尝试使用 AssemblyLoaderHelper 来实现此目的。我的实现与互联网上的其他示例相匹配,请参见此处:https://gist.github.com/TsuyoshiUshio/29f930aa267ff8bea292715467b0f40a

要使用它,

        var loadContext = new AssemblyLoaderHelper(dllDirectory);
        var assemblyName = AssemblyName.GetAssemblyName(dllFile);
        Assembly assembly = loadContext.LoadFromAssemblyName(assemblyName);

dllDirectory 肯定存在,并且 dllFile 包含在其中,但 LoadFromAssemblyName() 始终返回 null。

我做错了什么吗?我还可以问,有没有更好的方法来检查 DLL 中是否存在类/方法?我不需要从 DLL 中执行任何内容。我不能只使用 Assemmbly.Load() 因为我已经加载了另一个版本。

谢谢!

c# dll .net-assembly
1个回答
0
投票

好吧,AssemblyDependencyResolver 想要的是 dll 的路径,而不是 dll 的目录(所以 c:\plugins\myDll.dll 而不是 c:\plugins)。看起来很奇怪,因为你可以使用它来加载多个 DLL,但无论如何。它有效!

© www.soinside.com 2019 - 2024. All rights reserved.