23

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

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

例如

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

4

3 回答 3

9

如果我没记错的话,我大约在 4 年前使用AppDomain.AssemblyResolve 事件做到了这一点。这个想法是您收到 AssemblyName 请求并返回一个 Assembly。在某些情况下,我什至能够在运行时生成 DynamicAssembly 并将其注入。我忘记了强命名对此有什么影响。

于 2013-05-01T19:14:15.077 回答
0

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

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

于 2013-05-01T16:19:21.267 回答
0

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

我想到了这个想法,并进行了几次搜索以验证它是否可行。请参阅是否可以通过 ILDASM/ILASM hacking 修改程序集清单?http://forums.asp.net/t/1582934.aspx/1

于 2013-05-01T16:05:08.717 回答