Found conflicts between different versions of the same dependent assembly.

Is there an easy way to determine which assembly or assemblies are conflicting

When I double-click on the error message in the Error List panel, a message box pops up and says:

One or more dependent assemblies have version conflicts. Do you want to fix these conflicts by adding binding redirect records in the app.config file

Under what circumstances would I want to do that And what are the alternatives



Answer this question

Found conflicts between different versions of the same dependent assembly.

  • Drksrvnt

    It should be sufficient to remove the old reference and then add the new updated one, then rebuild. Check all your dependencies' dependencies to see if there is still a reference to the old version of that assembly somewhere.

  • Gabrielle Erlingen

    Thank you for your explanation.

    The project was a VB.NET 2003 which I pulled into VB.NET 2005 Express.

    I tried deleting the reference to the old assembly and then adding a reference to the current assembly, but that still did not work. Why isn't this enough

    I don't want to have to use an app.config file. What can I do to "update" the project to reference the newest assembly

    In VB6, all I had to do was add a reference to what I wanted to my project file.

    As you can probably tell, I am newbie at this.



  • Alistair Brown

    My binding redirect statement looks like this

    <bindingRedirect oldVersion="0.0.0.0-8.0.11.194" newVersion="8.0.11.194"/>

    What does this really mean What else could I have done to fix this other than allowing the binding redirect


  • Fox Me Up

    Use ildasm.exe to look at the manifests in your app and assemblies. The offending dependencies should be obvious if you don't have too many assemblies.

    If you have the option of recompiling the app (and/or assemblies) to have consistent references, do so.

    If you don't have any compatibility, deployment or security concerns about the particular assembly versions, a binding redirect is fine.



  • Heinz_Richards

    This means that all assembly binding references for versions 0.0.0.0-8.0.11.194 of that assembly will be modified to request version 8.0.11.194 for that application. You can't load multiple versions of the same assembly in the same app domain, so without this binding redirect, an attempt to load a different version of an already loaded assembly will fail.

    You don't need the binding redirect if the assembly in question is weakly named (i.e. the publickey/publickeytoken is null) or if your assembly references are consistent (i.e. all ask for the same version). Aside from recompiling the assemblies to have the same version dependencies, there's nothing else you can do if you don't have the source.



  • Found conflicts between different versions of the same dependent assembly.