Skip to main content

Libraries.json

这是一个清单文件,其中包含应用程序或库的开发者显式声明的直接库引用。它在应用程序的主目录和库项目的根目录中均有效。同一个库不能在同一个项目目录下使用两个不同的命名空间进行引用。Libraries.json文件。

该文件由三部分组成:

  • 第一部分references包含一个 JSON 字典,其键是库引用的命名空间,其值是描述引用详细信息的对象。$type成员用于区分不同的引用类型。

  • 第二部分placeholderOverrides包含一个 JSON 字典,其中键是占位符名称,值是覆盖占位符的库 ID 或模式。

  • 第三部分libraryParameters包含一个键值对的 JSON 字典。外部字典的键可以包含以下值:

    • 以井号 (#) 开头的占位符#)引用占位符库

    • 一个LibraryId引用托管库

    • 用于引用库项目的相对路径

    内部字典以库参数为键,以相应的参数值为值。

成员

有效期$type

必需的

默认值

描述

$type

是的

图书馆参考文献类型

  • ManagedLibrary库 ID,包括名称、版本和供应商

  • RelativePath硬盘上库项目的相对路径

  • Placeholder:带有默认分辨率的占位符名称。扩展名或placeholderOverrides如有必要,将推翻此决议。

allowUnqualifiedAccess

全部

false

如果该值为true这样,就可以在不指定命名空间的情况下访问该库。对于新代码,建议的值为:false这对应于……的否定。qualifiedOnly价值CODESYS 3默认值为false出于历史原因。这仅在图书馆允许无限制访问的情况下才会产生影响。

publishSymbolsInContainer

全部

false

如果该值为true这样,被引用的库就会将其符号发布到引用它的容器库中。创建容器库时,可以使用此设置来定义要发布的符号。

optional

全部

false

如果该值为true那么,即使库不可用,也不会出现编译器错误。但是,如果缺少该库中的某些符号,则可能会出现编译器错误。

linkAllContent

全部

false

如果该值为true这样,库中的所有内容都将被链接。这通常仅用于系统库。

path

RelativePath

是的

库相对于当前位置的路径Libraries.json文件。路径使用 URI 表示法。因此,请使用../向上移动一级目录,并且foo/打开foo文件夹。该路径指向一个CODESYS 4库项目目录(*.fbslib/)。

libraryId

ManagedLibrary

是的

托管库的库 ID,其中版本部分可以是一个模式。模式的格式在本节中定义。参考库。

includePrerelease

ManagedLibrary,Placeholder

false

如果该值为true然后,在比较版本时,版本模式也接受模式允许范围内的预发布版本。

如果该值为false那么,只有当版本模式中至少有一个比较元素(在模式中具有相同的 [主版本号、次版本号、补丁版本号] 元组)也具有预发布标签时,带有预发布标签的版本才会被版本模式接受。

placeholder

Placeholder

是的

引用库的占位符。它通过占位符解析法解析为库 ID。

defaultResolution

Placeholder

null

可选:如果启用此选项,则所有 POU 都将使用此版本(或版本模式)的库。

例 47. 例子
{
  "references" : {
    "TESTEXTERNALS": {
      "$type": "RelativePath",
      "path": "../../../TestLib.fbslib/",
      "optional": true,
      "linkAllContent": true
    },
    "SysTime": {
      "$type": "Placeholder",
      "placeholder": "SysTime"
    },
    "Standard": {
      "$type": "ManagedLibrary",
      "libraryId": "Standard, 3.5.18.0 (System)"
    },
    "AcmeTools": {
      "$type": "ManagedLibrary",
      "libraryId": "Acme Tools, 3.5.* (Acme International Inc.)",
      "publishSymbolsInContainer": true, // comments and trailing commas are tolerated
    },
    "WsCompiled": {
      "$type": "RelativePath",
      "path": "../../../pipeline-assets/Some library.compiled-library", 
      "noHash": true
    }
  },
  "placeholderOverrides": {
    "SysTime" : "SysTime, 3.5.17.0 (System)",
    "OtherPlaceholder" : "SomeToolsLib, >=1.2.0 (SomeTools Company)"
  },
  "libraryParameters": {
    "#SysTime": {
      "ParamOne": "250",
      "ParamTwo": "true"
    },
    "Acme Tools, 3.5.* (Acme International Inc.)": {
      "ParamOne": "125"
    },
    "../../../TestLib.fbslib/": {
      "ParamThree": "125"
    }
  }
}



参考库

就像在CODESYS 3图书馆CODESYS 4可以通过占位符、精确的库 ID 或带有版本模式的库 ID 来引用。此外,作为可编辑库提供的源库也可以通过其相对于源库的相对路径来引用。Libraries.json文件,

版本模式

示例语法

描述

1.2.3.4

与指定的版本 1.2.3.4 完全一致。

1.2.3

这与版本 1.2.3 或 1.2.3.0 完全对应。

*

x

X

最新发布的版本,但没有预发布版本。

1.2.*

1.2.*.*

1.2.x

1.2.X

最新发布的补丁级别为 1.2 版本

>=1.2.3-alpha.2

版本 1.2.3 或更高版本,包括 alpha.2 及更高版本的 1.2.3 预发布版本

1.0.0 - 2.0.0

1 - 2

≥1.0.0 <=2.0.0

匹配版本从 1.0.0.0 到 2.0.0.0(含 2.0.0.0),但不包括预发布版本。

注意:带有“-”的范围需要在运算符前后添加空格,以区别于预发布版本指示符:1.0.0-2.0.0 != 1.0.0 - 2.0.0

  • 1.0.0 - 2.0.0:范围 >=1.0.0 到 <=2.0.0

  • 1.0.0-2.0.0:确切版本为 1.0.0,带有预发布标志 2.0.0

≥1.2.3 <1.5

接受 1.2.3 及更高版本,但不包括 1.5 版本。

≥1.0

最低版本 1.0(含)

≥1.0 <1.5||≥1.5.1 <2

除 1.5.0 版本外的所有 1.x 版本