【问题标题】:When targeting .NET Standard, what exactly can I use from .NET Core and .NET Framework in my project?以 .NET Standard 为目标时,我可以在我的项目中使用 .NET Core 和 .NET Framework 中的哪些内容?
【发布时间】:2020-09-26 21:07:04
【问题描述】:

我正在处理一个目标框架属性设置为 .NET Standard 2.0 的类库项目。

根据documentation,我了解我的代码将以与 .NET Core 2.0 和 .NET Framework 4.6.1 兼容的方式编译。对吗?

这是否意味着我可以在我的项目中使用(并混合在一起)来自 .NET Core 2.0 和 .NET Framework 4.6.1 的类型和程序集?我也不确定 Microsoft 文档中的哪些页面适用于我的项目。

我认为以下文档页面都引用了我将在我的项目中使用的类型和程序集是否正确?

.NET Core 2.0

.NET Framework 4.6.1

【问题讨论】:

  • 您正在制作其他人(应用程序)将使用的东西(库)。您仅限使用 .NET Standard,并且只能查阅此文档。他们不受限制,可以查阅他们需要的任何文档。

标签: c# .net


【解决方案1】:

我倾向于将 .NET Standard 视为支持不同平台和 .NET 版本的 API 规范。它是不同平台支持的 API 的“最小公分母”。平台可能是 .NET Core、.NET 框架或 Unity。

假设您的库是标准 1.0,这意味着它可以在多种平台上运行,但与完整的 .NET Framework 或 .NET Core 相比,该标准中指定的 API 数量有限。

了解 .NET Standard 只是一个“标准”或对给定平台支持 API 的承诺很重要,您可以为支持 .NET Standard 1 的微波炉编写操作系统(实现标准中的所有 API) .NET Standard 1 的类库在该微波炉上运行

看看文档,他们有一个很好的表格来解释这一点:https://docs.microsoft.com/en-us/dotnet/standard/net-standard

【讨论】:

    【解决方案2】:

    你可以使用所有的东西,你只需要正确设置你的项目。限制将是 .NET Core 对象/方法/等。将不能直接与 .NET Framework 互操作。您必须通过 .NET Standard 才能实现间接互操作性。

    这篇文章解释了如何在同一个 .sln 中定位两者: .Net Framework and .Net Core in same solution

    本文帮助您了解 .NET Standard 与 .NET Framework 和 .NET Core 的关系。本质上,.NET Standard 是 .NET Core 和 .NET Framework 所依赖的基础库。 .NET Core 和 .NET Framework 是完全独立的库,但是它们都可以通过 .NET Standard 进行互操作。 http://www.codedigest.com/quick-start/9/what-is-netstandard

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-04
      • 1970-01-01
      • 2020-02-11
      • 1970-01-01
      • 1970-01-01
      • 2022-11-17
      • 2017-06-04
      • 1970-01-01
      相关资源
      最近更新 更多