Je travaille sur un projet de construction NANT pour construire un projet VS. L'un des fichier de construction a une définition de propriété comme ceci:Convertir un nom long en nom court dans NANT?
<property name="App.dir"
value ="${directory::get-current-directory()}\Source\App"/>
Cette valeur de la propriété a été utilisée dans de nombreux autres endroits. Par exemple:
<exec program=".\test.exe" workingdir=".">
<arg line="${App.dir}\project1\resources\res1.resx /arg2"/>
Ici, je dois utiliser < ligne arg = ... > au lieu de < valeur arg = ... > est de passer 2 spécifié arguments à text.exe. Lorsque j'ai construit ce projet NANT sur la machine d'un autre développeur, j'ai eu un échec de construction. Enfin, j'ai découvert que $ {App.dir} sur la machine de ce développeur est un chemin en forme longue et il y a un espace dans le chemin. Par conséquent, les arguments de text.exe étaient en réalité 3 ou plus.
Je ne sais pas s'il y a un moyen de convertir le chemin $ {} pour App.dir nom court sans espace:
<property name="App.dir" value ="????"/>
où ???? est quelque chose à convertir "$ {répertoire :: get-current-directory()} \ Source \ App" en un nom de chemin dans un format court. Y'a-t'il un quelconque moyen d'y arriver? J'utilise NANT dans Windows XP. Dans Unix/Cgywin, il y a one function d'obtenir le nom dos:
cygpath::get-dos-path
Puis-je utiliser celui-ci dans mon dossier de construction de NANT?
quelle que soit les valeurs du arg seront transmises à mon regsgen à courir.Les espaces dans l'argument ont causé le problème. –
si vous utilisez la valeur sera automatiquement indiquée si nécessaire. Comme alternative, vous pouvez utiliser . –
L'attribut value prendra la valeur entière en UN seul paramètre. S'il y a de l'espace dans la valeur, il ajoutera des guillemets autour de la valeur. Ma question est de passer la valeur en argument à mon programme exec exe. Si la valeur de $ {app.dir} fait partie de ou , les arguments sont mal interprétés. –