Skip to main content

Libraries.json

Il s'agit d'un fichier manifeste contenant les références directes aux bibliothèques, explicitement déclarées par le développeur de l'application ou de la bibliothèque. Il est valide dans le répertoire principal d'une application et à la racine d'un projet de bibliothèque. Une même bibliothèque ne peut pas être référencée avec deux espaces de noms différents au sein d'un même projet. Libraries.json déposer.

Le fichier se compose de trois sections :

  • La première section references contient un dictionnaire JSON dont la clé est l'espace de noms de la référence de bibliothèque et dont les valeurs sont des objets qui décrivent les détails de la référence. $type Le terme « membre » est utilisé pour distinguer les différents types de référence.

  • La deuxième section placeholderOverrides contient un dictionnaire JSON où les clés sont les noms des espaces réservés et les valeurs sont les identifiants de bibliothèque ou les modèles qui remplacent l'espace réservé.

  • La troisième section libraryParameters contient un dictionnaire JSON de paires clé/valeur. Les clés du dictionnaire externe peuvent contenir les valeurs suivantes :

    • Un espace réservé précédé d'un signe dièse (# ) pour faire référence à la bibliothèque d'espace réservé

    • UN LibraryId pour faire référence à la bibliothèque gérée

    • Un chemin relatif pour référencer le projet de bibliothèque

    Les dictionnaires internes contiennent les paramètres de la bibliothèque comme clé et les valeurs respectives comme valeur.

Membre

Valable pour $type

Requis

Valeur par défaut

Description

$type

Oui

Type de référence de bibliothèque

  • ManagedLibrary Identifiant de la bibliothèque comprenant le nom, la version et le fournisseur

  • RelativePath Chemin relatif vers un projet de bibliothèque sur le disque dur

  • Placeholder: Noms d'espace réservé avec une résolution par défaut. Une extension ou placeholderOverrides passera outre cette résolution si nécessaire.

allowUnqualifiedAccess

Tous

false

Si la valeur est true, la bibliothèque est alors accessible sans qualification d'espace de noms. La valeur recommandée pour le nouveau code est false Cela correspond à la négation de qualifiedOnly valeur dans CODESYS 3, qui par défaut à false Pour des raisons historiques. Cela n'a d'incidence que si la bibliothèque autorise un accès sans restriction.

publishSymbolsInContainer

Tous

false

Si la valeur est true La bibliothèque référencée publiera alors ses symboles dans la bibliothèque conteneur référençante. Utilisez ce paramètre pour définir les symboles publiés lors de la création d'une bibliothèque conteneur.

optional

Tous

false

Si la valeur est true Dans ce cas, aucune erreur de compilation ne se produira simplement parce que la bibliothèque est indisponible. Cependant, des erreurs de compilation peuvent survenir en raison de symboles manquants dans cette bibliothèque.

linkAllContent

Tous

false

Si la valeur est true Dans ce cas, tout le contenu de la bibliothèque sera lié. Ceci est généralement utilisé uniquement pour les bibliothèques système.

path

RelativePath

Oui

Le chemin d'accès à la bibliothèque, par rapport à l'emplacement du fichier actuel Libraries.json fichier. Le chemin utilise la notation URI. Par conséquent, utilisez ../ pour remonter d'un niveau de répertoire, et foo/ pour ouvrir le foo dossier. Le chemin pointe vers un CODESYS 4 répertoire du projet de bibliothèque (*.fbslib/).

libraryId

ManagedLibrary

Oui

L'identifiant de la bibliothèque gérée, dont la partie version peut être un modèle. Le format du modèle est défini dans la section Référencement des bibliothèques.

includePrerelease

ManagedLibrary, Placeholder

false

Si la valeur est true, puis, lors de la comparaison des versions, les modèles de version acceptent également les versions préliminaires dans la plage autorisée par le modèle.

Si la valeur est false, alors les versions avec des étiquettes de préversion ne sont acceptées par un modèle de version que lorsqu'au moins un élément de comparaison – avec le même tuple [majeur, mineur, correctif] dans le modèle – possède également une étiquette de préversion.

placeholder

Placeholder

Oui

L'espace réservé pour une bibliothèque référencée. Il est résolu en l'identifiant de la bibliothèque via la résolution d'espace réservé.

defaultResolution

Placeholder

null

Facultatif : si cette option est activée, tous les points d’utilisation utiliseront cette version (ou ce modèle de version) de la bibliothèque.

Exemple 47. Exemple
{
  "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"
    }
  }
}



Référencement des bibliothèques

Tout comme dans CODESYS 3, bibliothèques dans CODESYS 4 Les bibliothèques peuvent être référencées via des espaces réservés, des identifiants de bibliothèque exacts ou des identifiants de bibliothèque avec des modèles de version. De plus, les bibliothèques sources disponibles en tant que bibliothèques modifiables peuvent également être référencées via leur chemin relatif vers le répertoire racine. Libraries.json déposer,

Modèle de version

Exemple de syntaxe

Description

1.2.3.4

Correspond exactement à la version spécifiée 1.2.3.4

1.2.3

Cela correspond exactement à la version 1.2.3 ou 1.2.3.0.

*

x

X

La dernière version publiée est disponible, mais il n'existe pas de versions préliminaires.

1.2.*

1.2.*.*

1.2.x

1.2.X

Le dernier correctif publié pour la version 1.2

>=1.2.3-alpha.2

Version 1.2.3 ou ultérieure, y compris les versions préliminaires 1.2.3 à partir de la version alpha.2 et supérieures.

1.0.0 - 2.0.0

1 - 2

>=1.0.0 <=2.0.0

Compatible avec les versions de 1.0.0.0 à 2.0.0.0 incluse, à l'exclusion des versions préliminaires.

Remarque : Les plages contenant un tiret (« - ») nécessitent des espaces autour de l’opérateur afin de les distinguer des indicateurs de préversion : 1.0.0-2.0.0 ≠ 1.0.0 - 2.0.0

  • 1.0.0 - 2.0.0 : plage >=1.0.0 à <=2.0.0

  • 1.0.0-2.0.0 : version exacte 1.0.0 avec indicateur de préversion 2.0.0

>=1,2,3 <1,5

Accepte toutes les versions à partir de 1.2.3, à l'exception de la version 1.5.

>=1,0

Version minimale 1.0 (incluse)

≥ 1,0 < 1,5 || ≥ 1,5,1 < 2

Toutes les versions 1.x, à l'exception de la version 1.5.0.