BindingRedirect到不同的程序集名称

时间:2009-08-19 18:21:25

标签: .net assembly-resolution assemblybinding

您可以使用BindingRedirect将YourAssembly.dll 1.1.0.0重定向到1.2.0.0。

如果程序集名称不同,有没有人知道是否可以这样做。

E.g。

YourAssembly1.dll(v1.1)重定向到YourAssembly2.dll(v2.8)

3 个答案:

答案 0 :(得分:9)

如果我没记错的话,我大约4年前使用AppDomain.AssemblyResolve event做了这个。这个想法是你获得AssemblyName请求并返回一个程序集。在某些情况下,我甚至能够在运行时生成DynamicAssembly并注入它。我忘记了强烈命名对此有何影响。

答案 1 :(得分:0)

使用ILDASM和ILASM反编译,修改和重新编译原始程序集,使其引用YourAssembly2.dll。

我脑子里想到了这个想法并进行了几次搜索以验证它是否可行。请参阅Is it possible to modify assembly manifests other than by ILDASM/ILASM hacking?http://forums.asp.net/t/1582934.aspx/1

答案 2 :(得分:0)

这是不可能的,因为您自己的应用程序引用了YourAssembly1

当运行时加载应用程序时,它会尝试加载程序集YourAssembly1.dll(应用探测和版本重定向),因此无法加载程序集YourAssembly2