Ссылки. net (4.7.1) проектов в. net ядро ​​2.2 - PullRequest
0 голосов
/ 21 января 2020

У меня есть проект. net Core 2.2. Это создается с помощью шаблона веб-приложения (Model View Controller). Я могу добавить свои. Net Framework 4.7.1 проекты в этот основной проект, он компилируется, запускается и развертывается на моих тестовых серверах.

1) Затем я читаю о 2.2 End of Life, и я попытался перенести это на 3.1, и я не могу ссылаться. Net Framework 4.7.1 в 3.1 framework. Я не знаю, каков мой следующий шаг здесь.

2) Я прочитал, что могу конвертировать мои DLL в. Net Стандарт и справка - но, как я могу это сделать?

3) Эти dll 4.7.1 являются общими. Net Проекты Framework и основные проекты, поэтому если я изменю это на. Net Standard - будут ли работать мои. Net Приложения Framework?

4) Кроме того, мне следует перенести проекты 2.2 Core на 3.0 из-за EOL? Это обязательно? Как EOL повлияет на аудит, если я не буду мигрировать?

1 Ответ

1 голос
/ 21 января 2020

Во-первых, 2.2 - это EOL, потому что 2.1 - это версия LTS. Вы можете понизить до 2.1, если вы еще не хотите переходить на 3.x, и у вас все еще будет поддержка в течение года или двух, я думаю.

Однако 3.x берет первое шаг навстречу новому видению единичного. NET (. NET 5 для всех рабочих процессов), поэтому чем раньше вы доберетесь туда, тем лучше. 3.1, в частности, является выпуском LTS для 3.x, так что придерживайтесь его, если вы не хотите какое-то время обновляться.

. NET Реализация Core 3.x. NET Стандарт 2.1, поэтому вы больше не можете ориентироваться. NET Framework с этим (нет версии. NET Framework реализует. NET Стандарт 2.1 и никогда не будет). Однако. NET Standard 2.0 поддерживается как. NET Core (2.x и 3.x), так и. NET Framework 4.6.1+. В результате, если вам нужно совместно использовать библиотеку между всеми этими целями, вы должны нацеливаться. NET Стандарт 2.0.

Что касается преобразования существующих библиотек go, вы просто меняете целевую среду на . NET Стандарт 2.0. Это буквально это. Как только вы это сделаете, некоторые функции в библиотеке могут перестать работать (все, что требует . NET Framework, то есть Windows -specifi c API). На этом этапе вам нужно либо переписать эти части библиотеки для использования. NET Стандартно-совместимых API, либо использовать директивы компилятора для добавления альтернативных реализаций для. NET Standard 2.0 /.NET Core, в в этот момент вам придется многоцелевой библиотеки (например. NET Framework и . NET Standard 2.0 или даже специально. NET Core). При компиляции будут создаваться библиотеки DLL для каждой указанной цели c, что позволит вам беспрепятственно ссылаться на одну и ту же библиотеку из проектов, нацеленных на любую цель библиотеки.

Если вы что-то делаете с ASP. NET Основные компоненты в ваших библиотеках, вы должны выделить этот код в отдельные библиотеки и нацелить. NET Core 3.1 прямо там. Нет никакого смысла в нацеливании. NET Стандарт 2.1, так как этот код будет применим только к. NET Core, в любом случае. Вы также должны работать в противоположном направлении. Другими словами, если есть что-нибудь, что только применимо к. NET Framework-проектам (Web Forms и т. Д. c.), То выделите это в отдельные библиотеки, которые будут нацелены только на. NET Framework , Это позволит вам легче перенести остальные части библиотеки в. NET Стандарт 2.0.

...