Ответ 1
Чтобы перенаправить привязку сборки в файле конфигурации, вам нужно указать пространство имен urn:schemas-microsoft-com:asm.v1
в <assemblyBinding> элемент, как в этом примере:
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Moq"
publicKeyToken="69f491c39445e920"
culture="neutral"/>
<bindingRedirect oldVersion="3.1.416.3"
newVersion="4.0.10827.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
Интересно отметить, что сборники библиотек, скомпилированные с более ранней версией .NET(например, Moq 3 и AutoFixture 2.1) будет автоматически загружаться в процессе, запущенном на .NET 4.0 из-за Выполнение пошагово в процессе. Вот цитата из MSDN об этом:
Если приложение скомпилировано с использованием среда выполнения .NET Framework 4, но включает библиотеку, которая была построена используя более раннюю версию, эта библиотека будет использовать среду выполнения .NET Framework 4 также. Однако, если у вас есть приложение, которое было создано с использованием более раннее время выполнения и библиотека, которая была построенный с использованием .NET Framework 4, вы должно заставить ваше выражение также используйте .NET Framework 4
Связанные ресурсы: