【问题标题】:.NET Standard NuGet cross platform compatibility.NET Standard NuGet 跨平台兼容性
【发布时间】:2018-02-09 06:44:18
【问题描述】:

我正在寻找一种方法来创建可供 .NET 4.5.1+ 和 .NET Core 1.0+ 应用程序使用的 NuGet 包。我应该能够使用 .NET 标准 1.0 框架吗?如果我正在构建的这个 NuGet 解决方案依赖于 .NET Core NuGet,这有关系吗?这有意义吗?

【问题讨论】:

标签: .net nuget .net-core .net-standard


【解决方案1】:

我应该能够使用 .NET 标准 1.0 框架吗?

多目标可能更容易;您可以在 .csproj 中使用<TargetFrameworks>net451;netstandard1.0</TargetFrameworks> 或类似方法来执行此操作;但是:.NET 4.5.1(net451)支持.NET Standard 1.2及以下,所以1.0应该没问题。

如果我正在构建的这个 NuGet 解决方案依赖于 .NET Core NuGet,这有关系吗?

.NET Core 是一个框架,而不是一个标准;通常,应用程序 (exes) 以 .NET Core 为目标 - 库以 .NET 标准为目标。

【讨论】:

    【解决方案2】:

    我正在寻找一种方法来创建可供 .NET 4.5.1+ 和 .NET Core 1.0+ 应用程序使用的 NuGet 包。我应该能够使用 .NET 标准 1.0 框架吗?

    使用this table 来确定特定框架是否实现了某些版本的 .NET Standard。

    .Net Framework 4.5.1 最高可实现 v1.2,因此您的问题的答案是“是”——您可以使用 v1.0。但是,请确保 v1.0 有足够的 API。

    谈到@MarcGravell 的评论

    多目标可能更容易;

    我会说你不应该这样做,除非你有可执行的应用程序而不是共享的类库。始终努力将 .NET Standard 用于类库项目。

    我正在构建的这个 NuGet 解决方案是否有依赖关系? 在 .NET Core NuGet 上?这有意义吗?

    一旦您以 .NET Standard 或 .NET Core 为目标,就无需添加任何其他运行时依赖项。所有这些都将被隐式添加,并将在 deps.json 文件中提及。

    【讨论】:

      猜你喜欢
      • 2011-07-28
      • 2023-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-28
      • 2022-01-16
      相关资源
      最近更新 更多