Поддержка .NET 4.5 и DotNetCore

Как я могу поддерживать .NET 4.5 и DotNetCore?

Является ли PCL для общего кода лучшим способом продвижения вперед (если это вообще возможно для DNX + .NET 4.5)?

По сути, у меня есть библиотека, которую я публикую как пакет NuGet, который все еще должен поддерживать .NET 4.5.2, но я также хочу использовать эту библиотеку в приложении DotNetCore.

Поможет ли в этом .NET Standard? Или .NET является стандартом только для .NET Core+?


person Michal Ciechan    schedule 26.02.2017    source источник
comment
.NET Core — это реализация .NET Standard.   -  person thepirat000    schedule 27.02.2017
comment
я знаю, но хотел знать, реализует ли .NET 4.5.2 версию стандарта, и кажется, что да, но .NET Standard 1.5 все равно не соответствует моим потребностям :-(   -  person Michal Ciechan    schedule 27.02.2017


Ответы (1)


В .NET Core вы можете выбрать цель сборки и используемую библиотеку. Все эти изменения внесены в project.json.

Чтобы добавить поддержку .NET 4.52, вам нужно изменить ваш project.json, чтобы он выглядел примерно так:

"frameworks": {
"netcoreapp1.0": { //Support for .NET Core
  "imports": "dnxcore50",
  "dependencies": {
    "Microsoft.NETCore.App": {
      "type": "platform",
      "version": "1.0.0"
    }
  }
},
"net452": { //Support for .NET 452
}

Чтобы добавить специфичный для платформы код для .NET 452, используйте

#if NET452
...
#endif

Для запуска с .NET 452 используйте эту команду

dotnet run -f NET452

В MSDN есть довольно хорошая документация по этой теме и много других.

Этот Статья также очень хорошо объясняет, как управлять кодом Core и обычным кодом .NET в одном проекте.

person Tomasz Juszczak    schedule 26.02.2017
comment
Похоже, я могу изменить <TargetFramework>netcoreapp1.0</TargetFramework> в .csproj на netcoreapp1.0;net452 - person Michal Ciechan; 27.02.2017
comment
Обратите внимание, что для множественного таргетинга TargetFramework станет TargetFrameworks (во множественном числе). - person Michael Freidgeim; 13.11.2017