这与昨天我问的a question有关。简而言之,我遇到的问题是我有两个冲突版本的程序集。一个在appbase中,另一个在PrivateBinPath中。
根据我的理解,程序集解析器首先搜索appbase,然后在私有路径中搜索。问题在于,根据我通过运行融合日志得到的结果,如果解析器在appbase中找到错误的版本,则会抛出一个错误,说明版本不匹配并停止探测。
我需要使用位于appbase中的引用,因此设置PrivateBinPathProbe不是一个选项,因为它排除了appbase。有没有办法先改变在PrivateBinPath中搜索的顺序?
作为旁注,我不明白为什么如果找到错误的版本,解析器就会放弃。
答案 0 :(得分:2)
AssemblyResolve
事件仅在前一次查找未成功时调用。因此,您必须将Yahia的方法与前一个问题的答案结合起来:
PrivateBinPathProbe
,以便Fusion不会查看AppBase目录。AssemblyResolve
事件。第一步很重要,以便事件被触发。
答案 1 :(得分:1)
AFAIK无法做到这一点......
然而,您可以实施一种解决方法:
AssemblyResolve
handler 另一种选择是将依赖项嵌入到EXE / DLL中,因此根本不需要搜索任何路径 - 有关实现此目的的选项,请参阅here。