什么是如何以及如何在project.json中选择依赖类型

Set*_*Set 6 .net-core asp.net-core

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

例如,我可以使用添加依赖项

"Microsoft.Extensions.JsonParser.Sources": "1.0.0"
Run Code Online (Sandbox Code Playgroud)

要么

"Microsoft.Extensions.JsonParser.Sources": {
  "type": "build",
  "version": "1.0.0"
},
Run Code Online (Sandbox Code Playgroud)

要么

"Microsoft.Extensions.JsonParser.Sources": {
  "type": "platform",
  "version": "1.0.0"
},
Run Code Online (Sandbox Code Playgroud)

那么如何选择呢?官方文档尚未包含有关此信息.

Dav*_*ine 5

我建议避免手动编辑这个文件,这样你就不必过多地关注它了.此外,有计划完全删除它 - 这样你甚至不再使用project.json文件来定义dependencies.根据JSON SchemaStore定义project.json,该type密钥被定义为这样的:

"type": {
    "type": "string",
    "default": "default",
    "enum": [ "default", "build", "platform" ]
Run Code Online (Sandbox Code Playgroud)
  • build =只有构建项目所需的依赖项,构建时依赖项

  • platform =预期驻留在项目所在平台上的依赖项target.

该依赖项上的类型"platform"属性意味着在发布时,工具将跳过将该依赖项的程序集发布到已发布的输出.

如果您检查源ProjectReader.csDOTNET回购,你会看到它是如何序列化JSON这样一个对象,并在这个对象,我们可以找到的含义(上面详述).

补充阅读