Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
501 views
in Technique[技术] by (71.8m points)

asp.net - .Net Assembly Binding Redirect with Differing Public Key Tokens

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 the newer version?

For example, I have two assemblies...

System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

and

System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35

Should the following assembly binding redirect work in the Asp.Net web.config...

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
      <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0"/>
    </dependentAssembly>
  </assemblyBinding>
</runtime>
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...