解决库依赖关系
为了解决库依赖关系,需要从以下方面确定完整的依赖关系图:Libraries.json参考文献列表并写给Libraries.lock.json锁定文件。
首次创建库时会运行库解析。之后,库解析将由用户显式触发。设备项目首次创建后,库解析会自动运行一次,但之后不会再自动运行,即使打开项目也不会。因此,依赖关系图的任何更改都不会被忽略。
要解析库,您可以使用解析库上下文菜单中的命令Libraries.json文件。当引用尚未解析或其存储的解析不再与定义匹配时,将考虑引用。Libraries.json文件。
这解析所有库该命令将重建整个图。
解决流程
依赖关系图是递归构建的。对于每个引用的库,也会解析其自己的引用。通过这种方式,图表会逐渐扩展,直到记录所有依赖关系。
当通过版本模式引用库时,解析过程中会检查所有可用的库源,以确定最佳匹配版本。这些库源包括库缓存和所有已配置的库存储库。
优先解决事项:
引用规则的判定依据固定的排名顺序。第一个适用的规则生效。
通过相对路径进行引用
引用库的固定版本
参考版本模式:选择最新匹配的版本。
带有覆盖的占位符
Libraries.json(placeholderOverrides部分)由组件或扩展解析的占位符CODESYS 4
占位符具有来自设备描述的唯一分辨率
设备描述中的路径:
library-management\placeholder-libraries\
错误和冲突
如果在解析库时出现异议,则该过程会因错误而中止。在这种情况下,不会创建锁定文件
以下情况存在冲突:
同一个库被解析为不同的固定版本。
同一个命名空间可以解析不同的库。
一个库同时通过固定版本和不匹配的版本模式被引用。
不同的设备描述对同一个占位符的解析方式相互冲突。
当占位符被覆盖时,不会出现这种情况。
Libraries.json文件已唯一定义了占位符。
当必需的库无法解析时,也会发出错误消息。如果可选库无法解析,则只会生成诊断消息。在这种情况下,该库将被跳过,解析过程继续进行。
决议之后
问题解决后,库文件将可供访问。系统会检查相对路径的库文件路径是否有效。如果路径指向源库项目,则该项目将作为可编辑项目加载到工作区中。所有剩余的库文件将从其源文件恢复到库缓存中(前提是它们尚未存在于库缓存中)。锁定文件中的路径随后将指向库缓存中该库文件的位置。