.net Core 多目标和 .net Standard 有什么区别?

What is the difference between .net Core multi target and .net Standard?

.Net Standard 用于在不同类型的项目中使用相同的库,例如 WPF、xamarin、UWP...等

.Net Core 默认不可以,但是可以在.net Core 中编辑csproj 文件配置多目标,所以我可以设置多目标。在我做过的一项测试中,如果我将目标设置为 net47,我可以在我的 WPF 项目中使用这个 .net Core 库。

因此,如果我可以对 .net Core 多目标和 .net 标准执行相同的操作。有什么区别,何时使用一种,何时使用另一种?

谢谢。

您需要在 csproj 文件中定位多个框架。在 Visual Studio 2017 的最初发布中,没有 UI 用于此,但您可以手动完成。我相信在更新中会有 UI 对此的支持。

只需将 <TargetFramework> 元素更改为 <TargetFrameworks> 并使用以分号分隔的目标列表即可。例如,在 Noda Time 我有:

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

你可以:

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

但是,只有当您想(有条件地)利用某些仅在 .NET Core 中可用而在 .NET Standard 中不可用的功能时,您才想这样做。