Преобразование библиотек классов.NET Core 2.0 в стандарт.NET

Есть ли способ легко преобразовать библиотеку классов, ориентированную на.NET Core 2.0 на.NET Standard?

Если я правильно ее понимаю, если вы хотите максимизировать повторное использование библиотек классов в проектах, ориентированных на разные платформы.NET, например.NET Framework,.NET Core, Xamarin и т.д., Это лучшая идея для целевой.NET Standard - при условии, что все необходимые API-интерфейсы доступны в версии.NET Standard, которые будут нацелены.

Именно по этой причине я хочу преобразовать библиотеки классов из.NET Core 2.0 в.NET Standard 1.6 или.NET Standard 2.0.

Ответ 1

В файле проекта вы можете указать целевую компиляцию на netstandard с точной версией.

Пример Proj.csproj:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netstandard1.6</TargetFramework>
  </PropertyGroup>
</Project>
...

Microsoft предоставляет хорошую документацию о типах таргетинга.

Dotnet Standard не является каркасом или библиотекой, это абстрактный набор инструкций: какая функциональность должна иметь System.Array, String, List и т.д. В настоящее время существуют различные реализации:.NET Framework,.NET Core, Mono, Xamarin, Windows Phone. Это означает, что различные реализации могут перекомпилировать и повторно использовать ваш таргетинг на netstandard. Это очень хороший выбор для пакета NuGet.

Вы можете играть с версиями и найти минимальный набор функций, необходимый для вашей библиотеки. Каждый стандарт Dotnet расширяет функциональные возможности предыдущей версии. Таким образом, чем меньше целевая версия выбрана, тем больше платформ будет поддерживаться вашей библиотекой.

Ответ 2

Вы можете отредактировать файл csproj (можно сделать внутри VS, щелкнув правой кнопкой мыши по файлу проекта) и изменить

<TargetFramework>netcoreapp2.0</TargetFramework>

в

<TargetFramework>netstandard2.0</TargetFramework>