Ошибка Kestrel: не удается загрузить Microsoft.Extensions.Logging.Abstractions

У меня был очень простой проект Kestrel / ASP.NET Core, успешно развернутый на моем сервере Windows 2008 R2.. (начался с пустого веб-проекта + IgetityServer4 nuget. Я следил за этой страницей "Начало работы")

Таким образом, я мог изначально получить документ JSON 'discovery'.

Затем ( согласно этому руководству) я добавил к нему несколько пакетов NuGet, некоторые виды /CSS и т. Д.

  • Microsoft.AspNetCore.Mvc -Version 1.1.0
  • Microsoft.ApsNetCore.StaticFiles -Version 1.1.0

Модернизированное решение отлично работает на моем Win7 dev box, но после повторного развертывания... Теперь я получаю страницу с ошибкой 502.5. Если я захожу на сервер и пытаюсь "запустить" исполняемый файл через командную строку... Я вижу эту ошибку:

Необработанное исключение: System.IO.FileLoadException: не удалось загрузить файл или сборку 'Microsoft.Extensions.Logging.Abstractions, Version=1.1.1.0, Culture= нейтральный,PublicKeyToken=adb9793829ddae60' или одну из ее зависимостей. Определение манифеста обнаруженной сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040) в Ross.Web.Applications.Identity.Program.Main(String[] args)

Где я неправ?

Я вижу вышеупомянутую DLL, Microsoft.Extensions.Logging.Abstractions, опубликованные в файловой системе сервера. Я предполагаю, что мне нужно сделать редирект привязки или что-то в этом роде, но я слишком новичок в ядре, чтобы знать, как это сделать.

ОБНОВИТЬ
После обновления моих пакетов NuGet до последней.. ошибка похожа, но теперь она не может найти: Microsoft.AspNetCore.Hosting.Abstractions, Version=1.1.2.0

3 ответа

Решение

Хорошо, я должен был очистить каталог моего сервера.. и сделать новое повторное развертывание. Я видел другие ответы об удалении "корзины", но был сбит с толку, так как core веб-развертывания не имеют реального /bin каталог.

Теперь, я принимаю это, чтобы означать, "Очистить двоичные файлы... где бы они ни были"

Ребята, у которых в решении несколько проектов, обратите внимание:

Это происходит главным образом потому, что в вашем решении есть несколько проектов, и упомянутый пакет установлен в обоих из них, но с разными версиями.

Предположим, что исключение похоже на следующее:

Просто прекратите отладку и перейдите к Manage NuGet Packages for Solution и найдите этот пакет на установленной вкладке:

Как видите, у меня есть этот пакет в двух проектах с разными версиями, и в этом суть! Просто обновите более низкую версию до более высокой, и все готово.

Это общая проблема при смешивании основных зависимостей asp.net 1.1.0 и 1.1.1.

Самое простое решение - обновить все зависимости до 1.1.1. Если это невозможно, вам нужно будет добавить перенаправление привязки, чтобы перенаправить зависимости 1.1.1 в целевые сборки 1.1.0.

После того, как вы измените эти зависимости или добавите перенаправления привязки, очистите папку you / bin локально и включите очистку при следующей сборке.

Другие вопросы по тегам