如何让MSBuild Exec运行java程序?
我正在尝试在我的团队构建(MSBuild)中运行命令行操作 当我在构建机器的命令行上运行它时,它工作得很好。但是当在构建脚本中运行时,我得到一个“退出代码3” 这是我正在运行的命令: C:\Program Files\Wavelink\Avalanche\PackageBuilder>.\jresdk\bin\java -classpath "WLUtil.jar;WLPackageBuilder.jar" com.wavelink.buildpkg.AvalanchePackageBuilder /build PackageName 它说它找不到文件(谁知道是什么文件)如何让MSBuild Exec运行java程序?,msbuild,exec,msbuild-task,tfsbuild,Msbuild,Exec,Msbuild Task,Tfsbuild,我正在尝试在我的团队构建(MSBuild)中运行命令行操作 当我在构建机器的命令行上运行它时,它工作得很好。但是当在构建脚本中运行时,我得到一个“退出代码3” 这是我正在运行的命令: C:\Program Files\Wavelink\Avalanche\PackageBuilder>.\jresdk\bin\java -classpath "WLUtil.jar;WLPackageBuilder.jar" com.wavelink.buildpkg.AvalanchePackageBuild
关于如何在MS Build中运行命令行操作,有什么想法吗?所以。。。答案是这样的 首先,我的代码有一个错误。我将我的工作目录定义为
PkgBldWorkingDir
,但将其用作PackageBuilderWorkingDir
。这是我的第一个错误
第二个是在我的工作目录属性(
PkgBldWorkingDir
)中加引号。“
会弄糟这一点。在设置工作目录时,不要将它们传入。它可以处理路径中的空格,而不带引号。因此……以下是答案
首先,我的代码中有一个错误。我将我的工作目录定义为PkgBldWorkingDir
,但将其用作PackageBuilderWorkingDir
。这是我的第一个错误
第二个是在我的working dir属性(PkgBldWorkingDir
)中加引号。而“
则把这搞砸了。设置工作目录时不要将它们传入。它可以处理不带引号的路径中的空格
<PropertyGroup>
<!--Working directory of the Package Builder Call-->
<PkgBldWorkingDir>"C:\Program Files\Wavelink\Avalanche\PackageBuilder"</PkgBldWorkingDir>
<!--Command line to run to make Package builder "go"-->
<PkgBldRun>.\jresdk\bin\java" -classpath "WLUtil.jar;WLPackageBuilder.jar" 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"/>
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.