Сборка, указанная в манифесте зависимостей приложений (...), не найдена

Я обновил Microsoft.AspNetCore с 2.0.3 до 2.0.5, и мой проект WebAPI, хотя и успешно запущен локально, не запускается в производстве (IIS). Все было нормально в производстве до этого обновления. Сообщение об ошибке, созданное в каталоге журнала, выглядит следующим образом:

Error:
  An assembly specified in the application dependencies manifest (MyProject.WebAPI.deps.json) was not found:
    package: 'Microsoft.AspNetCore.Mvc.Abstractions', version: '2.0.2'
    path: 'lib/netstandard2.0/Microsoft.AspNetCore.Mvc.Abstractions.dll'

  This assembly was expected to be in the local runtime store as the application was published using the following target manifest files:
    aspnetcore-store-2.0.5.xml

Может ли кто-нибудь объяснить мне подробности именно того, что это значит? Я предполагаю, что это несоответствие версии, но почему это происходит? Я думал, что у последних стабильных выпусков пакетов NuGet не должно быть таких проблем.

Я смог решить проблему, понизив Microsoft.AspNetCore.All от 2.0.5 до 2.0.3, но хотел бы найти лучшее решение проблемы, чтобы я мог использовать самую последнюю версию этот пакет.

Ответ 1

Машины для разработки обычно устанавливают SDK, но только при производстве.

Добавьте в свой .csproj файл и опубликуйте его снова.

<PropertyGroup>               
    <PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
</PropertyGroup>

Ответ 2

Для меня отмеченный ответ не решил проблему. Моя проблема была при попытке Add-Migration

Add-Migration -Name initial-migration -Context Mysln.Data.MyDbContext -StartupProject Mysln -Project Mysln.Core

И ошибка была такая: enter image description here

И я решил это путем понижения всех моих пакетов Entityframework до 2.0.0 вместо последней версии 2.2.0-preview.

Ответ 3

Чтобы решить первую половину сообщения об ошибке, An assembly specified in the application dependencies manifest (…) was not found обязательно всегда используйте выходные данные публикации при развертывании на целевом сервере.

Для автономного приложения его можно найти в

bin\Release\netcoreapp2.0\win81-x64\publish

или для зависимых от платформы развертываний в

bin\Release\netcoreapp2.0\publish

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

Взято из связанного ответа.

Ответ 4

Я решил это путем понижения моих пакетов Microsoft.EntityFrameworkCore.Tools до 2.0.0

Ответ 5

У меня была эта ошибка, однако мое решение несколько отличалось от того, что было опубликовано выше. Моя проблема заключалась в том, что я развертывал через zip файл, и при создании zip файла я не включал подкаталоги, поэтому необходимые файлы не включались.

Так что, если вы публикуете через zip файл, обязательно включите все подпапки при создании zip файла.

Ответ 6

2 цента: если вы просто берете из папки сборки, dll для зависимости не предоставляются. Если вы публикуете папку, они есть. Это было исправление для меня.