Skip to Content
Nouvelle version 12 disponible 🎉

Ordre d’exécution

Des cibles qui dépendent les unes des autres doivent s’exécuter dans le bon ordre. Babel Desktop les regroupe en flux, numérote leurs étapes et peut transmettre le fichier de mappage des renommages d’une cible à la suivante.

Relier deux cibles

Les points d’ancrage gauche et droit d’une cible la relient à une autre cible. Faites glisser du point d’ancrage droit de la première cible vers le point d’ancrage gauche de la seconde, ou cliquez sur les deux points l’un après l’autre. Babel Desktop demande alors à quoi sert la connexion.

La boîte de dialogue Connect targets, qui explique que la seconde cible peut lire le fichier de mappage des renommages de la première, de sorte que les noms publics qu’elle utilise sont renommés de la même façon, ou simplement s’exécuter après la première, avec les boutons Execution order only, Cancel et Pass the map fileLa boîte de dialogue Connect targets, qui explique que la seconde cible peut lire le fichier de mappage des renommages de la première, de sorte que les noms publics qu’elle utilise sont renommés de la même façon, ou simplement s’exécuter après la première, avec les boutons Execution order only, Cancel et Pass the map fileLa boîte de dialogue Connect targets, qui explique que la seconde cible peut lire le fichier de mappage des renommages de la première, de sorte que les noms publics qu’elle utilise sont renommés de la même façon, ou simplement s’exécuter après la première, avec les boutons Execution order only, Cancel et Pass the map file

Choisir entre l’ordre d’exécution et un lien de mappage

ChoixEffet
Ordre d’exécution uniquementUne arête de flux, avec l’étiquette FLUX → : la cible A s’exécute avant la cible B. Rien n’est transmis de A à B.
Transmettre le fichier de mapUn lien de mappage, tracé en tirets avec une étiquette MAP : A écrit son fichier de mappage XML des renommages et B le lit, si bien que B utilise les nouveaux noms des symboles publics de A. A s’exécute avant B. Voir Renommage entre assemblies.

Utilisez un lien de mappage lorsque B appelle l’API publique de A et que les deux sont obfusqués avec renommage des symboles publics. Utilisez une arête de flux lorsque B doit seulement s’exécuter après A et ne lit rien de A.

Un lien de mappage active Generate Map Out File pour la première cible et ajoute son fichier de mappage aux Map In Files de la seconde. Si la première cible ne définit ni chemin de sortie ni chemin de fichier de mappage, son fichier de mappage est écrit à un emplacement fixe à côté de son fichier d’entrée, par exemple BabelOut/Library2.dll.map.xml, de sorte que la seconde cible le trouve toujours.

Les liens de mappage ne sont pas stockés à part : Babel Desktop les déduit de ces deux paramètres, et un projet écrit à la main ou avec Babel UI affiche donc lui aussi ses liens de mappage. Les mêmes liens apparaissent à trois endroits :

  • Sur le canevas, sous la forme de la ligne MAP en tirets, et dans la carte de la seconde cible, sous Lit le fichier map de.
  • Dans le groupe Fichiers map du panneau des propriétés de la seconde cible, sous Maps d’autres cibles. Voir Fichiers de mappage.
  • Dans la grille, dans l’onglet Maps de la seconde cible, où l’entrée indique De suivi du nom de la première cible. Voir Détails de la cible.

Une cible fusionnée dans une autre cible n’écrit pas de fichier de mappage propre : elle ne peut donc pas être la première cible d’un lien de mappage.

Flux et étapes

Un flux est un groupe de cibles reliées entre elles par des arêtes de flux, des liens de mappage ou des dépendances de fusion, d’incorporation et de référence. Les cibles qui ne sont pas reliées entre elles forment des flux distincts. Chaque cible affiche son étape, c’est-à-dire la position à laquelle elle s’exécute dans son flux, en haut à droite de son nœud. Sa carte indique les deux, par exemple Flux 1 · étape 2.

À l’intérieur d’un flux, les cibles s’exécutent dans l’ordre des étapes et, lorsque rien ne le détermine, dans l’ordre du projet. Les flux s’exécutent l’un après l’autre dans l’ordre du projet, ou en même temps lorsque Exécuter en parallèle les flux indépendants est activé. Les arêtes de flux sont enregistrées dans le projet comme des dépendances standard entre cibles MSBuild, si bien que MSBuild génère les cibles dans le même ordre.

La grille peut afficher les mêmes informations sous forme de colonnes : Flux · Étape et Exécuter après, c’est-à-dire les cibles qui doivent se terminer avant. Grouper par flux regroupe les lignes par flux. Voir La grille du projet.

Cibles qui s’attendent mutuellement

Babel Desktop rejette les liens d’une cible vers elle-même et les arêtes en double, et refuse toute connexion qui obligerait des cibles à s’attendre mutuellement. Si les cibles d’un projet ouvert depuis le disque attendent chacune le fichier de mappage de l’autre, le projet s’ouvre tout de même. Babel Desktop affiche une erreur qui nomme le cycle, par exemple Library1.dll → Library2.dll → Library1.dll, et le projet ne s’exécute pas tant que vous n’avez pas supprimé l’un des liens.

Supprimer une connexion

Pour supprimer une arête de flux ou un lien de mappage, cliquez dessus et appuyez sur Delete ou Backspace. Esc annule une connexion en cours de tracé ou efface la sélection. Supprimer un lien de mappage retire le fichier de mappage des Map In Files de la seconde cible ; vous pouvez aussi cliquer sur le × de son nom sous Maps d’autres cibles dans le panneau des propriétés.

Last updated on