您可以使用BindingRedirect将YourAssembly.dll 1.1.0.0重定向到1.2.0.0。
如果程序集名称不同,有没有人知道是否可以这样做。
E.g。
YourAssembly1.dll(v1.1)重定向到YourAssembly2.dll(v2.8)
答案 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
。