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 创建的吗?
我很困惑。我了解加载上下文在应用程序域中共享,但我从未见过跨进程共享加载失败缓存。也许我误诊了?
| 归档时间: |
|
| 查看次数: |
1698 次 |
| 最近记录: |