Je ne connais pas de réponse à votre question spécifique. La documentation est claire que refid 'ne donne que des résultats raisonnables pour les références aux structures ou propriétés similaires à PATH.'
Sans un peu plus d'informations sur ce que vous essayez de faire, il est difficile de commenter. Au risque de changer votre conception, plutôt que de répondre à votre question, je vous propose:
1) Vous pouvez transmettre la liste des arguments à exec en ligne:
<macrodef name="example">
<attribute name="args"/>
<sequential>
<exec executable="example.exe">
<arg value="somearg" />
<arg line="@{args}"/>
</exec>
</sequential>
</macrodef>
<example args="somearg arg1 arg2"/>
qui se déroulera exemple.exe:
example.exe arg1 arg2
2) Je passe dans les arguments aux macros qui appellent des applications externes comme ceci:
<macrodef name="example">
<element name="params" optional="yes" implicit="yes"/>
<sequential>
<exec taskname="eg" executable="example.exe">
<arg value="somearg" />
<params />
</exec>
</sequential>
</macrodef>
<example>
<arg value="arg1"/>
<arg value="arg2"/>
</example>
Ceci exécutera example.exe:
example.exe somearg arg1 arg2
J'espère que je n'ai pas enseigné à ma grand-mère à sucer des oeufs ici.
Le deuxième exemple est ce que je recherchais. Merci! :) –
Les éléments du bloc ne devraient-ils pas être nommés "args" (pluriel, non singulier) comme le paramètre element du MacroDef? –
Ken, si vous voulez dire dans le deuxième exemple, alors non. Comme les arguments sont implicites, vous n'avez pas à le nommer. Tous les éléments que vous avez ajoutés et qui ne sont pas explicitement associés à un élément sont supposés faire partie des arguments. Je vais modifier la solution pour utiliser des noms différents, pour éviter toute confusion. –