Preventing Version-Specific Assembly Dependencies

Valid from List & Label 11
When an update for an assembly which is referenced by a .NET application is available, the effort to move to next version seems rather big. It doesn't suffice to replace the old assembly with the new one or else following message dialog would appear:
"Could not load file or assembly ..., Version=..., Culture=..., PublicKeyToken=... or one of its dependencies." 


Therefore the new assembly has to be referenced in your application and afterwards the whole project needs to be compiled again. In case the developer also acts as ISV, he needs to deliver his up-to-date application to the customer who is in turn responsible for installing the update with the corresponding mechanism on the clients respectively servers. To save this effort the .NET framework provides a redirection mechanism. Just adapt your application settings like follows and so just replace the old List & Label assembly with the new one:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
                <assemblyIdentity name="combit.ListLabel20.dll" publicKeyToken="a7a30592cb4a94be" culture="neutral" />
                <bindingRedirect oldVersion="20.0.5406.15490" newVersion="20.1.5410.26199"/>
            </dependentAssembly>
        </assemblyBinding>
    </runtime>
</configuration> 


If you do not know how to get to the necessary information of the List & Label assembly, you can just execute the sample application “AssemblyInfo” that’s enclosed with this article and then choose the corresponding List & Label assembly.

Links:

https://www.combit-support.net/de/support/files/cmbtkb/AssemblyInfo.zip
IDKBTE000758 KBTE000758