Почему 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.

Другие вопросы по тегам