Можно ли ссылаться на библиотеку классов .net framework 4.7.2 из проекта ASP.NET Core MVC? - PullRequest
0 голосов
/ 01 ноября 2019

У меня есть проект ASP.NET MVC 5, который работает хорошо, и он также ссылается на библиотеку классов .NET Framework 4.7.2, которая создает некоторые CrystalReports. CrystalReports не поддерживает .NET Core, поэтому библиотека классов останется с полной .NET Framework.

Теперь, если я обновлю ASP.NET MVC 5 до ASP.NET Core 2 (или 3), я будубыть в состоянии ссылаться на библиотеку классов и, возможно, генерировать эти CrystalReports?

1 Ответ

2 голосов
/ 01 ноября 2019

.NET Core не поддерживает включение библиотек .NET Framework. Период. Однако .NET Core поддерживает .NET Standard, и, так как .NET Framework также реализует .NET Standard, Microsoft сделала специальное исключение в компиляторе, чтобы разрешить вам включать библиотеки .NET Framework с той оговоркой, что они могут вообще не работать илиполностью. Вы получаете предупреждение об этом, когда вы включаете библиотеку .NET Framework в проект .NET Core, и вы должны убедиться, что библиотека работает корректно сквозной.

Подавляющее большинство. Библиотеки NET Framework do работают, если они не используют API-интерфейсы .NET Framework (прежде всего API-интерфейсы Windows). Если они это сделают, то они не будут работать.

Здесь, похоже, эта библиотека действительно использует специфичные для Windows API, что означает, что она несовместима с .NET Core. В такой ситуации вы все равно можете создать проект ASP.NET Core, но вы должны ориентироваться на .NET Framework, а не .NET Core. То есть до ASP.NET Core 3.0, который не может ориентироваться на .NET Framework. ASP.NET Core 3.0+ зависит от .NET Standard 2.1, который не поддерживается или не поддерживается ни одной версией .NET Framework.

Таким образом, если вам нужно использовать библиотеку .NET Framework, которая не на 100%. Соответствует стандарту NET Standard 2.0, вы должны быть нацелены на .NET Framework, а если вы хотите нацелить на .NET Framework, то вы будете заблокированы по версии 2.2 в ASP.NET Core.

...