У меня странная ситуация с библиотеками, которые я использую.Каждый раз, когда я пытаюсь скомпилировать свое решение, появляется ошибка CS 1705
(AssemblyJoe .. with identity ..,Version=16.0 uses AssemblyMatthew, Version=16.0 which has a higher version than the referenced AssemblyMatthew, Version=15.0
).
На данный момент эта ошибка действительно верна и имеет смысл.Версия Assembly Matthew
(AssemblyMatthew
в моем примере), на которую я ссылаюсь, - 15. Joe
(AssemblyJoe
) ищет версию 16, на которую нет ссылок в моем проекте.
Однако,Я отредактировал App.config
, чтобы перенаправить версию 16 из Matthew
в 15, что прекрасно работает при времени выполнения .Это не работает во время компиляции , потому что Joe
фактически хочет версию 16, которой не существует.
Теперь странная часть: у меня есть версия 15Сборка Matthew
.Если я заменю версию 15 на версию 16 (обратите внимание, я заменяю только библиотеки DLL), все будет работать нормально.Я могу скомпилировать (перестроить), но я получаю ошибку времени выполнения (первоначальная причина, по которой я переключил версии).После компиляции я заменяю версию 16 версией 15 - теперь это так же, как раньше, с той разницей, что я могу компилировать сейчас.Через несколько минут я должен повторить это, потому что снова появляется старая ошибка (CS 1705
).
Как я могу это исправить?Я не думаю, что есть способ перенаправить сборки во время компиляции.
TL; DR Перенаправление сборок работает во время выполнения, но я не могу скомпилировать, потому что компилятор ищетне перенаправленная версия.