我的应用程序创建了多个AppDomain,我通过SetConfigurationBytes方法手动配置绑定重定向。我获取配置文件,检查私有文件夹上安装的所有程序集,然后设置assemblyRedirect,如下例所示。这是为了确保我总是使用给定程序集的发布版本:
<dependentAssembly>
<assemblyIdentity name="System.Net.Http" culture="neutral" publicKeyToken="b03f5f7f11d50a3a" />
<bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="2.2.18.0" />
</dependentAssembly>
但是,当在不同的AppDomain中加载的程序集依赖于System.Net.Http程序集时,我收到以下错误:System.IO.FileLoadException:加载此程序集将生成与其他程序集不同的授权集实例
我已经看到了解决此问题的两种可能方法:删除此DLL配置中的<dependentAssembly>
元素,或者在GAC上添加此程序集。
我不喜欢这样做,因为第一个可能会导致其他程序集出现问题,第二个依赖于GAC,我的一些客户不喜欢。
任何人对如何解决这个问题有不同的想法?
提前致谢。