【问题标题】:When building a .NET Core self-contained deployment, are higher target OS versions better?构建 .NET Core 独立部署时,目标操作系统版本越高越好吗?
【发布时间】:2017-07-21 09:06:15
【问题描述】:

创建self-contained .NET Core deployment 时,您需要指定目标平台的运行时ID,例如win7-x64win10-x64

我们发现这些目标是向后兼容的(我可以在我的 Windows 10 开发人员机器上运行以win7-x64 为目标的应用程序)。

我的问题是:定位尽可能高的运行时 ID 有什么好处?我们的服务器是 2008 R2,这意味着我们必须针对 win81-x64 或更低版本。针对win81-x64win7-x64 是否有运行时注意事项?

【问题讨论】:

  • 只有在有理由的情况下才应该定位更高的版本。要么某些依赖项依赖于此,要么您只想停止支持较旧的操作系统。
  • 我怀疑这种区别的存在是为了隔离 WinRT 应用程序(又名 UWP,又名电话,又名商店,又名现代 UI)。 Win7不支持。因此,如果您不以 WinRT 为目标,那么依靠 win7-x64 可以为您提供可以支持的最大操作系统版本数。

标签: .net .net-core project.json


【解决方案1】:

这是good document explains Runtime IDs,以及它们之间的关系。

RID(运行时 ID)具有在 runtime.json file in that folder 中列出的回退机制。

在某些情况下,您可以使用更高的 RID 获得更好的资产,例如,如果 NuGet 包具有 win7 资产和 win10 资产,其中 win10 资产点亮了 @987654326 中的功能@。这些情况不会经常发生,也不会真正发生在核心 .NET 运行时中,但在 3rd 方包中是可能的。

我的建议是为您所针对的最低操作系统版本使用 RID。如果您不打算在您的应用中支持win7,请使用win8 或更高版本。

【讨论】:

    猜你喜欢
    • 2018-06-22
    • 2017-08-04
    • 2012-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多