2010-03-30 7 views
1

J'essaye d'exécuter une action en ligne de commande dans mon Team Build (MSBuild). Lorsque je l'exécute sur la ligne de commande de la machine de construction, cela fonctionne très bien. Mais lorsqu'il est exécuté dans le script de construction, je reçois un "exit avec le code 3".Comment faire pour exécuter MSBuild Exec un programme Java?

C'est la commande que je suis en cours d'exécution:

C:\Program Files\Wavelink\Avalanche\PackageBuilder>.\jresdk\bin\java -classpath 
"WLUtil.jar;WLPackageBuilder.jar" com.wavelink.buildpkg.AvalanchePackageBuilder 
/build PackageName

Cette commande ne fonctionne que lorsqu'il est exécuté à partir du répertoire ci-dessus (je l'ai essayé de l'exécuter de c: \ avec le chemin complet à elle échoue).

Lorsque je tente de l'exécuter en utilisant ms construire c'est ma déclaration:

<PropertyGroup> 
    <!--Working directory of the Package Builder Call--> 
    <PkgBldWorkingDir>&quot;C:\Program Files\Wavelink\Avalanche\PackageBuilder&quot;</PkgBldWorkingDir> 

    <!--Command line to run to make Package builder "go"--> 
    <PkgBldRun>.\jresdk\bin\java&quot; -classpath &quot;WLUtil.jar;WLPackageBuilder.jar&quot; com.wavelink.buildpkg.AvalanchePackageBuilder</PkgBldRun> 

</PropertyGroup> 

<!--Run package builder command line to update the Ava File.--> 
<Exec ContinueOnError="true" WorkingDirectory="$(PackageBuilderWorkingDir)" 
     Command="$(PkgBldRun) /build PackageName"/> 

Comme je l'ai dit plus haut ce « quitte avec le code 3 ». Ceci est la sortie complète:

Task "Exec" 
    Command: 
    .\jresdk\bin\java -classpath "WLUtil.jar;WLPackageBuilder.jar" com.wavelink.buildpkg.AvalanchePackageBuilder /build PackageName 
    The system cannot find the path specified. 
MSBUILD : warning MSB3073: The command ".\jresdk\bin\java -classpath "WLUtil.jar;WLPackageBuilder.jar" com.wavelink.buildpkg.AvalanchePackageBuilder /build PackageName" exited with code 3. 
    The previous error was converted to a warning because the task was called with ContinueOnError=true. 
    Build continuing because "ContinueOnError" on the task "Exec" is set to "true". 
Done executing task "Exec" -- FAILED. 

Il dit qu'il ne peut pas trouver le fichier (qui sait ce fichier).

Des idées sur la façon de faire de cette exécution une action en ligne de commande dans MS Build?

Répondre

1

Alors ... voici la réponse.

D'abord, mon code comportait une erreur. J'ai défini mon répertoire de travail comme PkgBldWorkingDir mais je l'ai utilisé comme PackageBuilderWorkingDir. C'était ma première erreur.

Le second consistait à placer des guillemets dans ma propriété dir de travail (PkgBldWorkingDir). Le &quot; salit cela. Ne les transmettez pas lors de la configuration d'un répertoire de travail. Il peut gérer des espaces dans un chemin sans les guillemets.

Questions connexes