Чистый стандарт против продажи основных приложения: для основного проекта creating.NET (с помощью консоли или библиотеки классов )


Я пытаюсь развивать свои проекты, чтобы быть кросс-платформенным. Я создал несколько библиотек классов таким образом:Введите описание изображения здесь

Но, когда я использовал Entity Framework для построения своей БД, необходимые пакеты nuget устанавливались только в консольном приложении.

Вот в чем разница: консольное приложение ссылается на ядро .NET: Введите описание изображения здесь

И библиотека классов ссылается на чистый Стандарт:

Введите описание изображения здесь

Так почему же они оба под .NET Core, но ссылки на разные библиотеки? Являются ли они оба кроссплатформенными или только консоль, которая использует .NET Core? И следует ли мне избегать использования библиотек классов в этом случае?

1 9

1 ответ:

"Так почему же они оба находятся под .NET Core, но ссылаются на разные библиотеки?"
Рекомендуемая сетевая версия для создания библиотек-это теперь Net Standard Library. Именно поэтому при создании библиотеки классов по умолчанию используется версия net standard, а не Net Core. Вы можете вручную изменить это, но не рекомендуется, Смотрите также этот пост в блоге овведении стандартной библиотеки .NET .

Являются ли они оба кроссплатформенными или только консольными, которые использует ли .NET Core?
Да, они оба кросс-платформенные.

И следует ли мне избегать использования библиотек классов в этом случае?
Нет, непременно используйте библиотеки классов каждый раз, когда это возможно. Это не было первоначальным намерением Microsoft в начале, но они меняют свое мнение позже, поэтому не все пакеты еще совместимы со стандартом .net, поэтому вы не можете использовать версию net standard, чтобы иметь проект scaffold, потому что " Microsoft.EntityFrameworkCore.Инструменты " на moment совместим только с Net core, но он, вероятно, будет совместим со стандартом DotNet в ближайшее время

Как я уже сказал, Если вы действительно хотите сохранить параметр scaffold, то вы можете использовать проект библиотеки классов и изменить его вручную.в формате JSON .net-версии, то как только совместимость вы можете переключиться обратно .чистый стандарт. Другие ваши проекты, такие как сервис или уровень данных, в зависимости от того, как вы хотите сохранить разделение, могут быть библиотекой классов со стандартом dotnet, и они смогут работать правильно.

Или вы можете создать консольное приложение (.net core) из вашего исходного решения и скопировать и вставить в вашу реальную библиотеку классов с помощью .net standard. (Это то, что мы в настоящее время делаем в проекте)