1

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

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

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

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

根据我的测试,它工作正常。.NET 在注册从处理程序返回的程序集时会忽略版本。我只是想确保我没有错并且没有警告

谢谢

4

1 回答 1

2

它在MSDN 文章中明确提到:

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

于 2012-11-08T20:23:05.220 回答