在之前看到相同的绑定后不加载程序集,并且失败并显示 hr = 0x80070002'

use*_*479 5 .net c# .net-assembly

我看到一个奇怪的问题,一旦程序集无法加载,它就不会从具有相同父进程的不同进程加载。假设 Parent.exe 首先创建 Child1.exe,并尝试使用以下命令加载程序集

Type.GetType("TypeName, AssemblyName1") 
Run Code Online (Sandbox Code Playgroud)

它失败,因为程序集不在探测路径中。我收到预期的警告:

WRN:为程序集提供了部分绑定信息

但是,当 Parent.exe 创建 Child2.exe 并且 AssemblyName1 位于其探测路径中时,它仍然无法加载 AssemblyName1。Fusion 日志显示它甚至没有尝试探测并给出错误消息

日志:之前看到过相同的绑定,但失败,hr = 0x80070002

我看到这个是因为 Child1.exe 和 Child2.exe 都是从 Parent.exe 创建的吗?

我很困惑。我了解加载上下文在应用程序域中共享,但我从未见过跨进程共享加载失败缓存。也许我误诊了?