1

我正在尝试在我的 Team Build (MSBuild) 中运行命令行操作。

当我在构建机器的命令行上运行它时,它工作正常。但是当在构建脚本中运行时,我得到一个“退出代码 3”。

这是我正在运行的命令:

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

此命令仅在从上述目录运行时才有效(我尝试从 c:\ 运行它,但它的完整路径失败)。

当我尝试使用 ms build 运行它时,这是我的声明:

<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"/>

正如我上面所说,这“以代码 3 退出”。这是完整的输出:

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.

它说它找不到文件(谁知道是什么文件)。

关于如何使其在 MS Build 中运行命令行操作的任何想法?

4

1 回答 1

1

所以……这就是答案。

首先我的代码有一个错误。我将我的工作目录定义为PkgBldWorkingDir但将其用作PackageBuilderWorkingDir. 那是我的第一个错误。

PkgBldWorkingDir第二个是在我的工作目录属性( )中加上引号。&quot;搞砸了。设置工作目录时不要传入它们。它可以处理不带引号的路径中的空格。

于 2010-03-31T21:52:53.903 回答