1

チーム ビルド (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。それが私の最初のエラーでした。

2 つ目は、作業ディレクトリ プロパティ ( PkgBldWorkingDir) に引用符を入れることでした。それ&quot;を台無しにします。作業ディレクトリを設定するときにそれらを渡さないでください。引用符なしでパス内のスペースを処理できます。

于 2010-03-31T21:52:53.903 に答える