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

时间:2015-06-29 10:00:15

标签: c# .net azure .net-assembly

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

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

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

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

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

1 个答案:

答案 0 :(得分:2)

是的,您只有一个更改解析程序集。这个操作非常昂贵,所以不会一遍又一遍地尝试。

可能有用的是手动向下走referenced assemblies,然后手动下载并加载这些程序集。