assembliesreferencemultiple-versions

Using different versions of the same assembly in the same folder


I have the following situation

Project A

 - Uses Castle Windsor v2.2
 - Uses Project B via WindsorContainer

Project B

 - Uses NHibernate
 - Uses Castle Windsor v2.1

In the bin folder of Project A I have the dll Castle.DynamicProxy2.dll v2.2 and NHibernate dlls. Now the problem is that NHibernate is dependent on Castle.DynamicProxy2.dll v2.1 which is not there. How do I resolve this situation.


Solution

  • I used the following configuration to resolve the issue.

    <configuration>
        <runtime>
            <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
                <dependentAssembly>
                    <assemblyIdentity name="Castle.DynamicProxy2" publicKeyToken="407dd0808d44fbdc" />
                    <codeBase version="2.1.0.0" href="v2.1\Castle.DynamicProxy2.dll" />
                    <codeBase version="2.2.0.0" href="v2.2\Castle.DynamicProxy2.dll" />
                </dependentAssembly>
                <dependentAssembly>
                    <assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" />
                    <codeBase version="1.1.0.0" href="v2.1\Castle.Core.dll" />
                    <codeBase version="1.2.0.0" href="v2.2\Castle.Core.dll" />
                </dependentAssembly>
            </assemblyBinding>
        </runtime>
    </configuration>