Совместное использование DLL между проектами

В наши дни Microsoft заявляет, что это нейтральная платформа, поэтому я пытаюсь построить на Mac и Linux только с помощью VS Code и развертывать Azure. Зачем? Это в основном доказать, что я могу.

В нашем проекте есть несколько частей, которые включают в себя несколько различных веб-сайтов, API веб-интерфейса, API-интерфейс и несколько других бит. На моем Mac я построил .Net Core Class Library с загрузкой объектов. Командная строка, сборка dotnet, DLL, без проблем.

Я хочу поместить эту DLL на машину Linux, на которой строится веб-сайт MVC, - надеюсь, объекты, составляющие часть этого сайта. Я не могу понять, как заставить проект сайта ссылаться на мою DLL и использовать объекты.

Я предположил, что я скопирую его на другую машину, поместив ее в папку bin создаваемого сайта и ссылаюсь на нее в разделе "Зависимости" на сайте project.json. Неа. Я видел несколько статей, в которых сказано, что .Net Core работает только с NuGet, и это должен быть пакет. Это действительно так?

Я нашел и прочитал (если не полностью понял) все, что вы могли себе представить, для совместного использования ядра .net и .net. Это проект только для ядра, поэтому он неприменим. Честно говоря, я потерян, и что-то называется .Net Standard только что перевернулось в поле зрения.

Ответ 1

Поэтому вместо копирования DLL используйте dotnet pack для сборки пакета nuget на вашем Mac и вместо этого скопируйте его на свою Linux-машину. Поместите его в каталог, который вы настраиваете как локальный репозиторий nuget (без сервера или чего-то еще), и вы уходите.

Я согласен, что это не так просто, как ссылка на DLL, но это не так уж плохо. Обратите внимание, что вам нужно будет соответствующим образом выполнить версию пакета, чтобы система инструментов обнаружила, когда она изменилась.