.Net Assembly Binding Redirect with Differing Public Key Tokens

前端 未结 3 1202
谎友^
谎友^ 2020-12-15 02:19

Is it possible to perform an assembly binding redirect between different versions of a referenced assembly if the public key token is null on the older version and set on th

相关标签:
3条回答
  • 2020-12-15 02:59

    No, it is not possible. The assemblies need to have the same publicKeyToken.

    The bindingRedirect tag only has the oldVersion and newVersion attributes, so there's no way to tell it about the "null" version anyway.

    But the real reason behind is explained due to the strong name mechanism

    0 讨论(0)
  • 2020-12-15 03:08

    It does seem that a binding-redirect can't be used, but in my case I did manage to get around the problem with differing publicKeyTokens by amending the token-value being requested in the referencing DLL:

    Disassemble the dll to IL, change reference, reassemble (and re-sign - which might be an issue if you don't have the keyfile).

    (See my comment on when referencing assemblies, is it possible to insist on a version number but ignore the publickeytoken? (ie accept signed/unsigned) )

    0 讨论(0)
  • 2020-12-15 03:14

    You might be able to use the AppDomain.AssemblyResolve event to do that. I've included some sample code in this answer.

    0 讨论(0)
提交回复
热议问题