2016-08-29 12 views
1

У меня есть следующее сообщение об ошибке при попытке запустить тест:FSharp.Core: Не удалось загрузить файл или сборку

{System.IO.FileLoadException: Не удалось загрузить файл или сборку «FSharp. Core, Version = 3.3.1.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a 'или одна из его зависимостей. Установленное определение манифеста не соответствует сборке . (Исключение из HRESULT: 0x80131040) Имя файла: 'FSharp.Core, Version = 3.3.1.0, культура = нейтральной, PublicKeyToken = b03f5f7f11d50a3a' в Register.RegisterResponse .__ DebugDisplay()

Tests.dll

FSharp.Core: 3.1.2.5

Target F # среда: 4.3.1.0

Target Framework: 4,6

Тип

Выход: Библиотека классов

ManageAccount.dll

FSharp.Core: 3.1.2.5

Target F # среда: 3.3.1.0

Target Framework: .NET Portable Subset (.Net Framework 4.5, ASP.Net Core 1.0, Windows 8)

Тип выхода: Библиотека классов

Затем я добавил следующее приложение конфигурации для моего тестового проекта:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="FSharp.Core" publicKeyToken="b03f5f7f11d50a3a" 
          culture="neutral"/> 
     <bindingRedirect oldVersion="3.1.2.5" newVersion="3.3.1.0"/> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
</configuration> 

Если я нужен приложение конфигурации, какое значение должно мой bindingRedirect быть установлен в?

ответ

5

Попробуйте <bindingRedirect oldVersion="0.0.0.0-999.999.999.999" newVersion="3.3.1.0" />. Вот что делает большинство проектов F # для FSharp.Core. (Или newVersion="4.3.1.0", или даже newVersion="4.4.0.0", если вы перейдете на новый FSharp.Core).

1

В этом случае вы должны использовать новейшую версию (4.3.1.0) в bindingRedirect/newVersion, в противном случае вы, вероятно, получите ошибки из кода в сборке Tests.dll, которая опирается на более новую версию.

В качестве альтернативы вы можете обновить ссылку в одной из сборок (с понижением Tests.dll или обновить ManageAccount.dll), чтобы они использовали одну и ту же версию.

Смежные вопросы