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.