gpt4 book ai didi

.net - 我需要 Microsoft.NETCore.Platforms 和 Microsoft.NETCore.Runtime 吗?

转载 作者:行者123 更新时间:2023-12-04 17:16:56 26 4
gpt4 key购买 nike

在一个新的 ASP.NET Core RC2 类库中,我有以下 project.json 文件,我试图在其中遵循 How to trim your package dependencies 上的文档.

{
"dependencies": {
"Microsoft.AspNetCore.Mvc.Abstractions": "1.0.0-rc2-final",
"Microsoft.AspNetCore.Mvc.Core": "1.0.0-rc2-final",
"Microsoft.Extensions.Caching.Abstractions": "1.0.0-rc2-final",
"Newtonsoft.Json": "8.0.3"
},

"frameworks": {
"netstandard1.5": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.0.1-rc2-24027",
"Microsoft.NETCore.Runtime": "1.0.2-rc2-24027",
"System.Xml.XDocument": "4.0.11-rc2-24027"
},
"imports": "dnxcore50"
},
"net461": {
"frameworkAssemblies": {
"System.ServiceModel": "",
"System.Xml": "",
"System.Xml.Linq": ""
}
}
}
}

当我尝试删除 Microsoft.NETCore.Platforms 时和 Microsoft.NETCore.Runtime ,一切仍然有效。这可能是因为 Microsoft 依赖项也指定了这些。这些依赖是什么,我应该明确并保留它们吗?

最佳答案

这些包有什么用途:

  • Microsoft.NETCore.Platforms本质上只是一个 json 文件,它指定了 runtime identifiers (RID)。这些 ID(例如 osx.10.10-x64win7-x86 )在需要部署特定于平台的代码(例如,特殊编译的 CoreCLR 或特定于平台的压缩或加密库)时使用。它形成了一种树,允许更通用的平台模式(如 linux 是后来的父级,例如 rhel 再次是特定支持版本 rhel-7.1-x64 的父级)。因此,当有人构建 NuGet 时,您可以添加一个工件,例如部署在所有 linux 机器上的程序集(例如,针对标准 linux api 执行 P/Invoke)或特定的 linux 发行版(例如,使用特殊的 RedHat 功能)。
  • Microsoft.NETCore.Runtime是一个更棘手的故事。它用于为您的平台查找正确的运行时。

  • 您是否应该保留它们:由于您不直接使用它们,因此显式添加这些依赖项不会对我的理解带来任何好处。

    关于.net - 我需要 Microsoft.NETCore.Platforms 和 Microsoft.NETCore.Runtime 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37478226/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com