您可以使用BindingRedirect将 YourAssembly.dll 1.1.0.0 重定向到 1.2.0.0。
如果程序集名称不同,有谁知道是否可以这样做。
例如
YourAssembly1.dll (v1.1) 重定向到 YourAssembly2.dll (v2.8)
您可以使用BindingRedirect将 YourAssembly.dll 1.1.0.0 重定向到 1.2.0.0。
如果程序集名称不同,有谁知道是否可以这样做。
例如
YourAssembly1.dll (v1.1) 重定向到 YourAssembly2.dll (v2.8)
如果我没记错的话,我大约在 4 年前使用AppDomain.AssemblyResolve 事件做到了这一点。这个想法是您收到 AssemblyName 请求并返回一个 Assembly。在某些情况下,我什至能够在运行时生成 DynamicAssembly 并将其注入。我忘记了强命名对此有什么影响。
这应该是不可能的,因为您自己的应用程序引用了YourAssembly1
.
当运行时加载您的应用程序时,它会尝试加载程序集YourAssembly1.dll
(应用探测和版本重定向),因此它无法加载程序集YourAssembly2
。
使用 ILDASM 和 ILASM 反编译、修改和重新编译原始程序集,使其引用 YourAssembly2.dll。
我想到了这个想法,并进行了几次搜索以验证它是否可行。请参阅是否可以通过 ILDASM/ILASM hacking 修改程序集清单?和http://forums.asp.net/t/1582934.aspx/1