【发布时间】:2009-10-02 03:09:36
【问题描述】:
在运行时,如果引用的程序集无法加载,例如“强名称验证失败”(因为它是经过测试签名的),有没有办法从另一个真正签名的路径提供替换程序集?
我尝试订阅 AppDomain.CurrentDomain.AssemblyResolve,但它没有被触发,因为“坏”程序集在技术上存在,它只是无法加载。
当无法加载程序集时,是否有一种通用的方法来提供后备程序集?
【问题讨论】:
-
在尝试加载程序集时可以尝试捕获 SecurityException 吗?
-
我试过了,但我不知道下一步该做什么......我仍然需要以某种方式告诉 CLR 程序集加载器在加载我的程序集时选择正确的依赖项......
-
如何在应用程序启动时显式加载程序集并处理异常。我以某种方式假设您的程序集是自动加载的。
-
是的,但即使在我处理了异常之后 - 我仍然如何获得正确的版本来加载?它是静态链接的。嗯,也许我应该在正确的版本上调用 Assembly.Load??
-
你可能不得不弄乱出版商政策文件......我从来没有,所以我不把这个作为答案。
标签: c# .net reflection assembly-resolution assembly.load