Подтвердить что ты не робот

Различные DLL, но должны быть одинаковыми в консольном приложении и веб-сайте

У меня есть консольное приложение и веб-сайт, которые используют ту же самую сборку System.Runtime.Serialization.Primitives.dll. Однако, когда я запускаю веб-сайт, моя сборка является правой, но если я запускаю приложение для утешения, DLL для веб-сайта превращается в ту, что находится слева, и вызывает ошибки. Оба проекта - v4.7, и это началось после того, как я обновил все свои проекты до этой Framework.

Оба проекта имеют в себе это

  <dependentAssembly>
    <assemblyIdentity name="System.Runtime.Serialization.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
  </dependentAssembly>

введите описание изображения здесь

4b9b3361

Ответ 1

Я пошел вперед и обновился до Visual Studio 2017 с тех пор, как использовал 2015 год. После этого все началось правильно, и многие из этих проблем со ссылками исчезли.

Ответ 2

Способы решения этой проблемы при разных ссылках на те же DLL:

Шаг 1. Создайте новое веб-приложение на Visual Studio 2015

Шаг 2. Проверьте, сохраняется ли проблема в этом новом проекте веб-приложения.


Если ответ НЕТ, и проблема больше не сохраняется, то:

Шаг 1: Отслеживайте ссылку на сборку, которая вызывает проблему, в проекте исходного веб-сайта (ваше первое/багги-веб-приложение) из раздела Ссылки.

Шаг 2: Удалите ссылку

Шаг 3: Добавить новую ссылку и отправьте сборку из опции Обзор вместо проверки уже имеющейся. (Лучше всего, если вы можете скопировать контрольный путь сборки DLL из проекта Console, который работает)

Шаг 4: Очистить и затем перестроить проект.

Если проблема все еще сохраняется, это проблема с обновлением фреймворка, которое вы выполнили.

Если проблема решена, то yay, вы решили ее!


Теперь, если проблема не сохранилась в новом проекте веб-приложения, который вы создали, но остается только на старом веб-сайте/приложении , значит, первоначальная проблема связана с поврежденной ссылкой на DLL после обновления рамки до версии 4.7

Даже после обновления ссылки на вашем веб-сайте или в вашем новом веб-приложении , если проблема со ссылками на библиотеки DLL по-прежнему существует, ваша модернизация до рамки v4.7 повреждена и вам может потребоваться удалить и установить (или просто восстановить обновление фреймворка, но я предпочитаю первый вариант). Рамки снова.

Поскольку вы установили Visual Studio 2017 после того, как вы установили .Net v4.7 в свою систему, среда IDE исправила тонкую проблему самостоятельно. В то время как ваша Visual Studio 2015 уже была установлена, и обновление инфраструктуры до версии v4.7 каким-то образом испорчено, ваша IDE 2015 года не может решить тонкую проблему изнутри.

Если проблема устранена, то удалите одну версию своей среды IDE, не имея смысла зависеть от вашей памяти на жестком диске, сохраняя одновременно Visual Studio 2015 и 2017 в одной и той же системе. (Это всего лишь предложение)


Материал избыточной справки:

Microsoft имеет выделенную страницу установщика для .NET Framework v4.7, предназначенную для разных версий Visual Studio, к которой можно получить доступ отсюда: Платформа .NET Platform. Вы можете загрузить новую копию .NET framework v4.7 из вышеупомянутой ссылки и установить ее для своей Visual Studio 2015, если хотите продолжить работу с VS2015.