ResolveEventHandler 只调用一次,成功或失败

ResolveEventHandler only called once, succeed or fail

我正在研究一个具有如下设置的解决方案:我们有执行某些功能的程序集 A 和程序集 B,它是程序集 A(和其他程序集)使用的纯域模型。两者都存储在 Azure 中,并在解决方案需要时下载使用。

程序集 A 已下载并加载正常,我创建了一个 ResolveEventHandler 以确保在需要时下载程序集 B,我已通过以下操作添加它:

AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(AssemblyResolveFunc);

解析器工作正常,但问题是无论结果如何,它只被调用一次。如果找到程序集 B,则加载它并且一切正常,但是如果程序集 B 尚未上传且找不到,则它会按预期失败,但它永远不会再试一次。在下一次调用时,它只会抛出一个错误,不会尝试解决依赖关系。

我觉得我不理解 ResolveEventHandlers 的使用方式,但是在正确加载程序集 B 之前,它不应该每次都重试吗?

是的,您只有一个更改解析程序集。这个操作开销挺大的,就不反复尝试了。

手动走下 referenced assemblies 然后手动下载和加载这些程序集可能会有帮助。