Keeping the versions of packages in sync was difficult today, again.
Now I tried testing my data access code with FakeDbSet. This is an in-memory store for your data, the owner describes it as
A ready to use FakeDbSet for faking Entity Framework code.
The version of EntityFramework I used for the data access code and the version needed for FakeDbSet were different. Running the unit test would throw an exception:
Could not load file or assembly ‘EntityFramework, Version=4.4.0.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089’ or one of its
dependencies. The located assembly’s manifest definition does not
match the assembly reference. (Exception from HRESULT: 0x80131040)
I remembered the solution Visual Studio offered the previous time and added a binding redirect. This solved the problem.
<configuration> <!-- other stuff removed for clearness --> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="EntityFramework" culture="neutral" publicKeyToken="b77a5c561934e089" /> <bindingRedirect oldVersion="4.4.0.0" newVersion="6.0.0.0" /> </dependentAssembly> </assemblyBinding> </runtime> </configuration>
Not to say I’m happy with a version number in my config, but this is in my unit test and that is not (currently) part of my product.