В чем разница между .net Core multi target и .net Standard?

.Net Standard используется для использования одной и той же библиотеки в проектах разных типов, таких как WPF, xamarin, UWP... и т.д.

.Net Core не может по умолчанию, но есть возможность настроить многоцелевую цель в .net Core, редактируя файл csproj, поэтому я могу установить несколько целей. В одном тесте, которое я сделал, если я установил в качестве целевого net47, я могу использовать эту .net-базовую библиотеку в моем проекте WPF.

Итак, если я могу сделать то же самое с .net Core multi target и стандартом .net. Каковы различия и когда использовать один и когда использовать другие?

Спасибо.

Ответ 1

Вам нужно настроить таргетинг на несколько фреймворков в файле csproj. В первоначальном запуске Visual Studio 2017 для этого нет интерфейса, но вы можете сделать это вручную. Я считаю, что в обновлении будет поддержка UI.

Это просто вопрос об изменении элемента <TargetFramework> на <TargetFrameworks> и использовании списка целей, разделенных запятыми. Например, в Noda Time у меня есть:

<TargetFrameworks>net45;netstandard1.3</TargetFrameworks>

У вас может быть:

<TargetFrameworks>netcoreapp1.0;netstandard1.3</TargetFrameworks>

Однако вы хотели бы сделать это только в том случае, если хотите использовать (условно) некоторые функции, доступные только в .NET Core, а не в .NET Standard.