【问题标题】:What is and how to select the type of dependency in project.json什么是以及如何选择 project.json 中的依赖类型
【发布时间】:2016-06-30 02:32:39
【问题描述】:

我找不到有关“构建”和“平台”(可能还有其他一些)依赖类型之间有什么区别以及默认类型是什么的信息。

例如,我可以使用

添加依赖项
"Microsoft.Extensions.JsonParser.Sources": "1.0.0"

"Microsoft.Extensions.JsonParser.Sources": {
  "type": "build",
  "version": "1.0.0"
},

"Microsoft.Extensions.JsonParser.Sources": {
  "type": "platform",
  "version": "1.0.0"
},

那么如何选择呢? Official documentation 尚不包含这方面的信息。

【问题讨论】:

    标签: asp.net-core .net-core


    【解决方案1】:

    我建议避免手动编辑此文件,这样您就不必过多地关注它。此外,还有plans 可以完全删除它——这样您甚至不再使用project.json 文件来定义dependencies。根据project.jsonJSON SchemaStore definitiontype键定义如下:

    "type": {
        "type": "string",
        "default": "default",
        "enum": [ "default", "build", "platform" ]
    
    • build = 仅在构建项目时需要的依赖项,build-time dependency

    • 平台 = 预期驻留在您的项目配置为target的平台上的依赖项。

    该依赖项的类型“平台”属性意味着在发布时,工具将跳过将该依赖项的程序集发布到已发布的输出。

    如果您检查 dotnet 存储库中 ProjectReader.cs 的来源,您将看到它如何将此 JSON 序列化为一个对象,并且在此对象中我们可以找到其含义(详情见上文)。

    补充阅读

    【讨论】:

    • “我们可以推断出:”你忘记完成那部分了吗?
    • @svick,是的——我在那个问题上分心了......很好。
    【解决方案2】:

    文档确实说明了它(至少对于平台而言),您只需要查看正确的位置:)

    您可以在.NET Core App Types 页面上找到它。基本上,“平台”意味着从已安装的运行时使用它,并且在您发布/部署应用程序时不会被打包。

    基本上,您将“平台”用于便携式应用程序,而没有用于独立应用程序的类型。

    【讨论】:

      猜你喜欢
      • 2012-03-09
      • 2016-04-09
      • 2015-11-11
      • 2016-03-23
      • 1970-01-01
      • 2013-07-08
      • 2019-12-23
      • 1970-01-01
      • 2019-09-17
      相关资源
      最近更新 更多