Компилятор игнорирует время перенаправления сборок - PullRequest
0 голосов
/ 16 апреля 2019

У меня странная ситуация с библиотеками, которые я использую.Каждый раз, когда я пытаюсь скомпилировать свое решение, появляется ошибка 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 Перенаправление сборок работает во время выполнения, но я не могу скомпилировать, потому что компилятор ищетне перенаправленная версия.

...