ASP.NET CORE не смог найти файл или сборку с пользовательской сборкой

У меня возникла странная проблема.

У меня в основном есть собственный веб-стек для .NET-ядра, который я встроил в несколько DLL, и я хочу ссылаться на них из другого решения ASP CORE.

VS, похоже, находит сборки, где я могу перемещаться по типам и т.д. Я также могу создать проект без каких-либо проблем, но когда IIS запускает сервер, я получаю внутреннюю ошибку сервера:

FileNotFoundException: Не удалось загрузить файл или сборку myDLL, версия = 1.0.0.0, Culture = нейтраль, PublicKeyToken = null '. Система не может найти указанный файл.

Связанные DLL находятся в папке debug, и действительно странно, что если я создаю новый проект ASP Core в том же решении, что и веб-стек, я могу ссылаться и использовать его без каких-либо проблем.

Почему это происходит только при запуске проекта вне решения веб-стека и что я могу сделать, чтобы он мог работать повсюду?

Ответ 1

Инструмент .NET Core Tool в VS 2017 (< 15.3 preview)/.NET CLI < 2.0 не полностью поддерживает привязку сборок на диске. Вам необходимо упаковать библиотеку в виде пакета NuGet или использовать ссылку на проект ( "такое же решение" ). Техническая причина заключается в том, что все необходимые сборки и версии разрешаются во время компиляции и записываются в файл .deps.json. При загрузке произвольных сборок это может завершиться неудачно, потому что либо сборка, либо ее зависимости не могут быть найдены (или конфликты друг с другом).

Ответ 2

для загрузки external dll в core проекте необходимо:

  1. против 2017 года с версией 15.3 или выше.
  2. В вашем проекте установлен пакет Microsoft.Extensions.DependencyModel NuGet.