Почему bindingRedirect не влияет на версию FSharp.Core
У меня есть проект модульного теста, который нацелен на время выполнения F# 4.4.1. У него есть app.config с разделом bindingRedirect:
<dependentAssembly>
<Paket>True</Paket>
<assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="4.4.1.0" />
</dependentAssembly>
Однако, когда я запускаю тесты, я получаю ошибку времени выполнения:
Не удалось загрузить файл или сборку 'FSharp.Core, версия =4.3.0.0, культура = нейтральная, PublicKeyToken=b03f5f7f11d50a3a' или одна из ее зависимостей. Система не может найти указанный файл.
Интересно, почему предпринимается попытка загрузить FSharp.Core 4.3.0.0, так как bindingRedirect указывает другую версию.
1 ответ
Видимо, это проблема с конфигурацией XUnit. В следующем разделе app.config изменилась конфигурация AppDomain:
<appSettings>
<add key="xunit.appDomain" value="required" />
</appSettings>
Затем тестовый участник пожаловался на отсутствие xunit.execution.desktop.dll. Как только файл был помещен в каталог выполнения, бегун XUnit выполнил команду app.config с настройками bindingRedirect.