1

CC.NETからPSExecタスクを呼び出そうとしていますが、いくつかの問題が発生しています。

これがCCプロジェクトです

<project name="Test">
  <tasks>
    <exec>
      <executable>C:\Utilities\psexec.exe</executable>
      <buildArgs>-u [UNAME] -p [PWD] "C:\Utilities\Joel.bat"</buildArgs>
    </exec>
   </tasks>
 </project>

Joel.batのソースは次のとおりです

CLS
@ECHO OFF

何が起こるかというと、私が初めてプロジェクトを強制的にビルドするとき、それは正常に実行されます。PSExecタスクが開始され、Joel.batファイルが実行されます。ビルドログに終了コードに関する情報がありますが、タスクは成功しています。

これがビルドログの出力です。

PsExec v1.97 - Execute processes remotely
Copyright (C) 2001-2009 Mark Russinovich
Sysinternals - www.sysinternals.com
C:\Utilities\Joel.bat exited with error code 0.

2回目にビルドを強制すると、「アプリケーションを正しく初期化できませんでした(0xc0000142)」という恐ろしいエラーメッセージが表示されます。ビルドを2回以上実行することはできません

さらに、サービスMSC内からクルーズコントロール.netサービスをシャットダウンしようとすると、シャットダウンできません。どこかにロックがかかっていて、解放されていないようなものです。サービスを強制終了する唯一の方法は、ccservices.exeプロセスを強制終了することです。

私はnantタスクを使用してまったく同じことを試し、まったく同じ結果を得ました。最初は動作し、2回目は失敗し、プロセスをシャットダウンできません。

これがCC.NETの問題なのかPSEXECの問題なのか(もちろん私も)わかりません。

誰かアイデアがありますか?CC.NETフォーラムにも投稿しています。

PSExecの最新かつ最高のものとCC.NETの1.4.4を使用しています。

Thx、ジョエル

4

3 に答える 3

2

管理者アカウントでCruiseControlサービスを実行する

于 2010-10-26T10:56:23.313 に答える
0

maybe its the old eula problem, try the /accepteula option for psexec

于 2011-04-21T22:26:26.607 に答える
0

他の psexecオプションを試しましたか?

-d Don't wait for application to terminate. Only use this option for non-interactive applications.
于 2010-03-17T17:35:55.797 に答える