У меня есть веб-приложение, первоначально нацеленное на 4.6.1. Это веб-приложение ссылается на библиотеку классов; в свою очередь, это ссылается на библиотеку классов Net Standard 1.6.
Добавление ссылки на библиотеку Net Standard было последним изменением и, похоже, вызвало его нарушение: веб-приложение работало нормально до тех пор, пока не была введена библиотека Net Standard; в этот момент я начал получать ошибку:
Не удалось загрузить файл или сборку "System.Runtime, Version = 4.1.0.0, Культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a 'или одна из ее зависимостей. Система не может найти указанный файл.
System.Runtime
входит в пакет NuGet в веб-приложении.
Это может быть не актуально, но когда я смотрю в каталог пакетов; Я вижу, что System.Runtime.4.3.0\lib имеет каталоги net45
и net462
, но не 4.6.1 или 4.7 (см. Ниже, почему я ожидал бы этого).
Некоторые вещи, которые я пробовал, которые не работали:
- Несмотря на просмотр здесь, что 4.6.1 поддерживает Net Std 1.6, я действительно пытался обновление до 4.7, но безрезультатно.
- Попробовал настроить перенаправление сборки в файле web.config. Это слегка меняет ошибку, чтобы сказать, что она ищет 4.0.0.0, а затем повторное нажатие, но по существу такая же ошибка.
- Пробовал удалить каталог пакетов, чтобы проверить, могу ли я принудительно обновить (также попробовал Update-Package в System.Runtime).
- При поиске в Интернете я нашел пару подобных проблем; один из GitHub (который я не могу переместить) подразумевал, что обновление VS2017 устранит проблему.
В Интернете достаточно свежих материалов, которые заставляют меня думать, что я не единственный человек, который испытывает это; хотя я не нашел объяснений относительно того, что может быть причиной. Может ли кто-нибудь дать объяснение относительно того, что может быть причиной этого, или какие-либо диагностические шаги, которые я могу использовать?