Является ли хорошей идеей добавить. Net Framework библиотеку классов в. Net ядро ​​консольного приложения - PullRequest
0 голосов
/ 16 марта 2020

Я создал новое консольное приложение. net и у меня есть все мои BL и DAL в пакете NuGet, который находится в. net Framework (некоторые библиотеки классов находятся в. Net framework 2.0 ). если я установлю этот NuGet в библиотеку .Core, он не будет работать нормально, что очевидно.

, поэтому возникает вопрос, если я добавлю библиотеку классов. Net Framework (4.7) и установлю этот Nuget и EFCore в Есть ли что-нибудь, что могло бы быть неправильным? смогу ли я использовать эту библиотеку классов в. Net основном консольном приложении.

что я уже сделал:

Я добавил библиотеку классов. net framework в решение установил это NuGet и EF Core, я не вижу ошибок в библиотеке классов.

1 Ответ

0 голосов
/ 16 марта 2020

Нет, это плохая идея, и она не будет работать.

Any. NET Скомпилированные библиотеки Framework нельзя использовать и ссылаться на них. NET Основные проекты и наоборот.

Вы можете сделать это с помощью пакетов NuGet, но это будет Хорошая идея уменьшить риск сбоя путем преобразования кода в. NET Standard. Потому что тогда вы можете безопасно использовать. NET Core до тех пор, пока ваша. NET Библиотека классов Framework не содержит не. NET Стандартных пространств имен и классов.

См. Это официальное. NET Стандартные ссылки на совместимость: https://docs.microsoft.com/en-us/dotnet/standard/net-standard

Также вы можете вручную проверить совместимость API, перейдя к этому: https://apisof.net

ОБНОВЛЕНИЕ 1: Благодаря комментарию Джона Скита похоже, что есть способ ссылки. NET Framework в. NET Ядро с использованием таргетинга пакетов nuget. NET Framework!

См. https://docs.microsoft.com/en-us/dotnet/core/porting/third-party-deps#net -framework-compatibility-mode

Но все же есть вероятность, что это может не сработать, особенно если сторонние библиотеки используют классы, доступные только в. NET Framework, это не портирован на. NET Ядро, такое как Workflow Foundation и WCF на стороне сервера.

Я не собираюсь удалять свой ответ, потому что я должен сохранить свой ответ как урок и для меня :)

ОБНОВЛЕНИЕ 2 : переименовать вас pdate от единственного способа сделать это со ссылкой на пакет NuGet, как предложено Jon.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...