Во-первых, 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.