На самом деле, если вы создаете приложение с использованием .NET Core / Standard, но в вашем приложении вы можете иметь какую-то ссылку на то, что при использовании .NET Framework это должно быть большой проблемой.
История: я создаю веб-приложение с использованием ASP.NET Core, в этом приложении я хочу иметь расширение для преобразования HTML в pdf.
Я пробовалпоиск в Google и нашел плагин, который называется: itextsharp
.И проблема здесь в следующем.
itextsharp
использует .NET Framework, в то время как мой основной проект использует .NET Core.Поскольку я хочу создать библиотеку классов для создания этого расширения, у меня есть 3 варианта:
Использование библиотеки классов .NET Core.
ИспользованиеБиблиотека классов .NET Standard.
Использование библиотеки классов .NET Framwork.
Все они могут быть отнесены к основному проекту. НО :
Я не могу использовать itextsharp
ссылки (itextsharp.dll
, itextsharp.xtra.dll
, itextsharp.pdfa.dll
, itextsharp.xmlworker.dll
...) в .NETБазовый / стандартный класс libray.Все они могут работать только на целевом .NET Framework.
(я еще не упоминал о том, как преобразовать код в целевой .NET Standard или Core из-за лицензии)
И мое решение таково: создайте приложение .NET Framework и опубликуйте его в exe
файле перед добавлением в основной проект в качестве ссылки.
P / S: На данный момент itextsharp
имеет версию Core, но я думаю, что она недостаточно хороша (проблемы с отображением изображений, шрифтов с текстом в кодировке Юникод, тегом стиля ...).
В целом, если вы хотитеСоздайте приложение, которое использует целевой .NET X, вы должны убедиться, что все ссылки могут использовать и целевой .NET X.
Другой пример: если вы хотите создать библиотеку классов, использующуюRazor class library
.Вы должны убедиться, что все ссылки используют целевой .NET Core / Standard.Поскольку Razor class library
не может обращаться к библиотеке классов .NET Framework.