.NET assemblyResolve事件处理程序执行版本验证吗?

时间:2012-11-08 19:29:51

标签: c# .net assemblyresolve

我有一些依赖于某些共享组件的应用程序。我正在将应用程序本地目录之外的这些共享程序集移动到共享目录。我的目标是每次发布新版本的共享程序集时,我只需将新版本放在共享目录中,而不必更改我的应用程序中的任何内容。我认为assemblyResolve事件是一个很好的解决方案。我有一个特定的问题要询问处理程序的工作方式。

假设我附加此处理程序以解析共享目录中缺少的程序集。我只使用程序集名称在目录中找到相应的dll并使用Assembly.LoadFrom(dllpath)加载它。

我的应用程序引用程序集:名称:A,版本:1.0,publickey:... 程序集升级到版本:2.0 我将新程序集放在共享目录中。

应用程序是否会正确选择新版本?加载新程序集并从处理程序返回后,C#是否进行了任何匹配?

从我的测试中,它运行正常。 .NET在注册从处理程序返回的程序集时忽略该版本。我只是想确保我没有错,并且没有任何警告

感谢

1 个答案:

答案 0 :(得分:2)

MSDN article中明确提到:

  

事件处理程序可以返回与请求的版本不同的程序集版本。