我正在开发一个需要一些额外程序集的插件。其中一个程序集已存在于根应用程序文件夹中。此版本错误,我手动将正确的版本上传到单独的文件夹。
问题是,正如this article提到的那样,当我加载我的程序集版本时,看起来应用程序已经自动加载根文件夹一,即使它是错误的数字(? )。由于名称已经在内存中,因此忽略了我的程序集。
我见过许多类似的问题,但没有魔术回答。这个问题在插件式架构中可能会出现很多问题吗?
编辑:
我使用FusionLog获取完整信息:这是整个事情的发生方式:
LOG: Appbase = file:///D:/test/
LOG: Initial PrivatePath = D:\test\Sandbox
LOG: Attempting download of new URL file:///D:/test/mydll.DLL.
LOG: Assembly download was successful. Attempting setup of file: D:\test\mydll.dll
LOG: Entering run-from-source setup phase.
LOG: Assembly Name is: mydll, Version=5.1.0.0, Culture=neutral, PublicKeyToken=a446968a32b751de
WRN: Comparing the assembly name resulted in the mismatch: Minor Version
ERR: The assembly reference did not match the assembly definition found.
ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated.
它永远不会在PrivateBinPath内部进行检查。所以为了纠正我之前的问题,DLL永远不会被加载,尽管它在那里......